如何在popup.html和content.js之间的Chrome扩展消息传递?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (495)

所以我有一个脚本,它运行在一个网站上,根据特定的参数收集一些数据,它本身工作得很好,但是我希望能有一个带一个按钮的浏览器弹出,点击这个按钮就会触发前面提到的脚本。

我相信我的问题是我无法通过按下按钮发送消息,我也不知道如何实现,也不知道我读过的浏览器操作教程。

以下是我的代码:popup.html

<html>
<body style="width: 200px; height: 150px;">
    <script src="background.js"></script>
    <div id="button" style="position:absolute; left: 75px;">
        <button id="mb" onclick="click()">Initialise</button>
    </div>
</body>
</html>

背景js

function click() {
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
        var activeTab = tabs[0];
        chrome.tabs.sendMessage(activeTab.id, {"message": "clicked_browser_action"});
    });
}

content.js

$(document).ready(function(){
    init();
    chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){
        if(request.message === "clicked_browser_action"){
            popup();
        }
    })
});

我知道我的其余代码可以工作,因为我已经通过添加

browserAction.onClick.addListener(function(tab){ ... });

代替:

function click() { ... }
提问于
用户回答回答于

你需要在弹出窗口中使用Javascript添加一个onClick事件侦听器,而不是在html中定义事件内联。

document.getElementById("mb").addEventListener("click", function(e){
//event will trigger here
}

所属标签

可能回答问题的人

  • 天使的炫翼

    17 粉丝531 提问36 回答
  • 富有想象力的人

    3 粉丝0 提问30 回答
  • 学生

    3 粉丝476 提问28 回答
  • o o

    4 粉丝494 提问27 回答

扫码关注云+社区

领取腾讯云代金券