chrome 扩展通过共享本地存储将多条消息传递到外部站点
Posted
技术标签:
【中文标题】chrome 扩展通过共享本地存储将多条消息传递到外部站点【英文标题】:chrome extension passing multiple message to external site by sharing local storage 【发布时间】:2021-07-26 18:05:47 【问题描述】:**
已解决
**
我正在开发一个 chrome 扩展程序。在 *** 上阅读我能够在不同域之间共享本地存储,并将数据从扩展发送到我的外部站点。
然而,我想做的是向外部站点发送多个消息。如何调整我正在使用的代码?我对js不是很熟悉,抱歉
这是 popup.html 上的代码 -> 扩展(功能完美)
window.onload = function()
var receiver = document.getElementById('receiver').contentWindow;
var btn = document.getElementById('send');
function sendMessage(e)
e.preventDefault();
receiver.postMessage(document.getElementById('D1').value, 'http://externalsite');
btn.addEventListener('click', sendMessage);
这是外部网站上的代码 -> 接收者
window.onload=function() var messageEle=document.getElementById('message');
window.addEventListener('message',receiveMessage);
function receiveMessage(e)
if(e.origin!=="chrome-extension://ldjfmalmmomhpjmoeemlaingagdhagjl")
return;
messageEle.value = e.data;
我需要的是发送更多的
receiver.postMessage(document.getElementById('D1').value, 'http://externalsite');
例如
receiver.postMessage(document.getElementById('D1').value, 'http://externalsite');
receiver.postMessage(document.getElementById('D2').value, 'http://externalsite');
receiver.postMessage(document.getElementById('D3').value, 'http://externalsite');
非常感谢
【问题讨论】:
发送id: 'D1', value: document.getElementById('D1').value
等对象
感谢您的回复,您能给我一个我的代码示例吗?
【参考方案1】:
为了帮助别人,我在这种模式下解决
在扩展的 popup.html 代码中
window.onload = function()
var receiver = document.getElementById('receiver').contentWindow;
var data =
domanda1: (document.getElementById('D1').value),
domanda2: (document.getElementById('D2').value),
domanda3: (document.getElementById('D3').value)
;
var btn = document.getElementById('send');
function sendMessage(e)
e.preventDefault();
receiver.postMessage(data, 'externaldomain');
btn.addEventListener('click', sendMessage);
并在接收者页面-外部站点-带有代码
window.onload=function()
var domanda1=document.getElementById('domanda1');
var domanda2=document.getElementById('domanda2');
var domanda3=document.getElementById('domanda3');
window.addEventListener('message',receiveMessage);
function receiveMessage(e)
if(e.origin!=="chrome-extension://ldjfmalmmomhpjmoeemlaingagdhagjl")
return;
domanda1.value = e.data.domanda1;
domanda2.value = e.data.domanda2;
domanda3.value = e.data.domanda3;
ps = 感谢 wOxxOm 的帮助
【讨论】:
以上是关于chrome 扩展通过共享本地存储将多条消息传递到外部站点的主要内容,如果未能解决你的问题,请参考以下文章
如何在 chrome 扩展本机消息传递和 c# 应用程序之间发送/接收消息