相关疑难解决方法(0)

Chrome扩展程序:内容脚本和background.html之间的通信

我是Chrome扩展新手.我正在尝试在内容脚本和background.html页面之间进行通信.该background.html发送一个请求," 你好 ",以内容脚本和内容脚本应该以"进行回应你好背景 "警报.但它只是没有发生.我的background.html代码是:

function testRequest() {        
    chrome.tabs.getSelected(null, function(tab) {
        chrome.tabs.sendRequest(tab.id, {greeting: "hello"});
    });    
}
Run Code Online (Sandbox Code Playgroud)

content.js代码:

chrome.extension.onMessage.addListener(
    function(request, sender, sendResponse) {
        if (request.greeting == "hello")
        alert("hello background");
    }
);
Run Code Online (Sandbox Code Playgroud)

popup.html代码:

<!doctype html>
<html>
    <head></head>
    <body>
        <form>
            <input type="button" value="sendMessage" onclick="testRequest()" />
        </form>    
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

manifest.json:

{
    "browser_action": {
        "default_icon": "icon.png",
        "popup": "popup.html"
    },
    "background": {
        "page": "background.html"
    },
    "permissions": [
        "tabs",
        "http://*/*",
        "https://*/*",
        "notifications",
        "contextMenus"
    ],
    "content_scripts": [
        {
            "matches": …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension content-script

16
推荐指数
1
解决办法
2万
查看次数

如何将数据从后台页面获取到Google Chrome扩展程序中的内容脚本

我一直在尝试将数据从我的后台页面发送到我的Chrome扩展程序中的内容脚本.我似乎无法让它工作.我在线阅读了一些帖子,但它们并不是很清晰,而且看起来很高.我已经设法使用Chrome样本上的Oauth联系人示例来运行oauth.身份验证工作,我可以通过打开一个新选项卡获取数据并在html页面中显示它.

我想将此数据发送到内容脚本.

我在这方面遇到了很多麻烦,如果有人可以概述你需要遵循从bg页面发送数据到内容脚本甚至更好的代码的明确步骤,我将非常感激.任何接受者?

我的背景页面的代码如下(我已经排除了oauth paramaeters和其他)

` function onContacts(text, xhr) {
    contacts = [];
    var data = JSON.parse(text);
    var realdata = data.contacts;
    for (var i = 0, person; person = realdata.person[i]; i++) {
      var contact = {
        'name' : person['name'],
        'emails' : person['email']
      };


      contacts.push(contact); //this array "contacts" is read by the 
 contacts.html page when opened in a new tab

    }

    chrome.tabs.create({ 'url' : 'contacts.html'}); sending data to new tab
    //chrome.tabs.executeScript(null,{file: "contentscript.js"});
    may be this may work?

  };

  function getContacts() { …
Run Code Online (Sandbox Code Playgroud)

background google-chrome-extension

13
推荐指数
1
解决办法
1万
查看次数