无法使用谷歌浏览器扩展程序触发chrome.browserAction.onClicked.addListener [英] Unable to trigger chrome.browserAction.onClicked.addListener with google chrome extensions

查看:2476
本文介绍了无法使用谷歌浏览器扩展程序触发chrome.browserAction.onClicked.addListener的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我只是想让身体颜色改变

manifest.json

  {
name:Bagde,
description:,
version:1,
manifest_version:2,
background:{
scripts:[
background.js

},
browser_action:{
default_title :Test,
default_popup:popup.html
}
}

popup.html

 < html> 

< head>
< script src =popup.js>< / script>
< / head>

< body>
< p>部分内容..< / p>
< / body>

< / html>



popup.js

  document.addEventListener(DOMContentLoaded,function(){
//获取引用函数
backGround = chrome.extension.getBackgroundPage();
// Call Function
backGround.updateIcon();
});

background.js

  var i = 1; 

函数updateIcon(){
i = 1;
chrome.browserAction.setBadgeText({
text:'Test'
});
chrome.browserAction.setPopup({
popup:popup.html
});
}


chrome.browserAction.setBadgeBackgroundColor({
color:[200,0,0,100]
});

window.setInterval(function(){
chrome.browserAction.setBadgeText({
text:String(i)
});
i ++;
},4000);

chrome.browserAction.onClicked.addListener(function(tab){
chrome.tabs.executeScript(null,
{code:document.body.bgColor ='red' });
});

任何想法我可能做错了什么?如果您定义 default_popup >,您不能拥有 browserAction.onClicked 的侦听器。在这种情况下,您可以简单地将处理程序中的代码添加到 popup.js 中。



编辑:即,添加到 popup.js 以下内容:

  chrome.tabs.executeScript(null,{code:document.body.bgColor ='red'}); 


I'm a bit stuck here and was wondering if anyone can point out where I might be wrong.

I am simply trying to make the body color change to red on click of the app icon.

manifest.json

{
    "name": "Bagde",
    "description": "",
    "version": "1",
    "manifest_version": 2,
    "background": {
        "scripts": [
            "background.js"
        ]
    },
    "browser_action": {
        "default_title": "Test",
        "default_popup": "popup.html"
    }
}

popup.html

<html>

    <head>
        <script src="popup.js"></script>
    </head>

    <body>
        <p>Some Content ..</p>
    </body>

</html>

popup.js

document.addEventListener("DOMContentLoaded", function () {
    //Get Reference to Functions
    backGround = chrome.extension.getBackgroundPage();
    //Call Function
    backGround.updateIcon();
  });

background.js

var i = 1;

function updateIcon() {
    i = 1;
    chrome.browserAction.setBadgeText({
        text: 'Test'
    });
    chrome.browserAction.setPopup({
        popup: "popup.html"
    });
}


chrome.browserAction.setBadgeBackgroundColor({
    color: [200, 0, 0, 100]
});

window.setInterval(function () {
    chrome.browserAction.setBadgeText({
        text: String(i)
    });
    i++;
}, 4000);

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(null,
        {code:"document.body.bgColor='red'"});
});

any ideas what I may be doing wrong? Thanks for taking your time to reading this.

解决方案

If you define default_popup, you can't have a listener for browserAction.onClicked. In this case you can simply add the code in your handler to your popup.js.

EDIT: That is, add to popup.js the following:

chrome.tabs.executeScript(null, {code:"document.body.bgColor='red'"});

这篇关于无法使用谷歌浏览器扩展程序触发chrome.browserAction.onClicked.addListener的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆