消息从内部扩展页面传递到内容脚本

时间:2017-03-16 20:19:29

标签: javascript google-chrome-extension content-script message-passing

我正在为单词翻译开发一个简单的扩展。

我所坚持的是我使用内部页面进行设置。我想要做的是将一个数组(或至少-i' m毁灭的数据)从这个内部页面传递给内容脚本。

我已经尝试了

内容脚本

var port = chrome.runtime.connect();

window.addEventListener("message", function(event) {
    // We only accept messages from ourselves
    if (event.source != window)
        return;

    if (event.data.type && (event.data.type == "FROM_PAGE")) {
        window.alert("Content script received: " + event.data.text);
        port.postMessage(event.data.text);
    }
}, false);

内部网页的javascript

window.postMessage({ type: "FROM_PAGE", text: "Hello from the webpage!" }, "*");

内部页面是一个html文件。我想将它用作设置页面。就像AdBlock"选项"您可以从其弹出页面访问的页面。

的manifest.json

{
    "manifest_version": 2,

    "name": "Jun",
    "description": "See selected words' equivalent.",
    "version": "1.0",
    "background": {
        "scripts": ["background.js"]
    },

    "browser_action": {
        "default_icon": "icon.png",
        "default_title": "Click Here!",
        "default_popup": "popup.html"
    },

    "permissions": [
        "storage",
        "tabs"
    ],

    "content_scripts": [{
        "matches": ["http://*/*", "https://*/*"],
        "css": ["/lib/jquery-ui.min.css"],
        "js": ["/lib/jquery-3.1.1.js", "/lib/jquery-ui.min.js", "/lib/jquery.mark.js", "content.js"],
        "run_at": "document_end"
    }]
}
到目前为止还有其他一些无用的东西。

澄清;扩展页链接

铬扩展://inbhgljjpkpodbamjfkehcmloabbhccn/category_settings/categorySettings.html

我希望我能表达自己。

提前致谢!

PS:你可以看到来自https://github.com/MisketAdam/Jun

的项目

PS2:

扩展程序目录

.
|──*etc*
|──content.js
|──category_settings/
|  |──categorySettings.js
|  |──categorySettings.css
|  |──categorySettings.html
|  |──*etc*

解决

是的......经过全面阅读https://developer.chrome.com/extensions/messaging并尝试

chrome.runtime.sendMessage

在内部页面的javascript并从后台页面处理它使它工作。

谢谢大家!

0 个答案:

没有答案