javascript - Chrome : Page action not working

标签 javascript google-chrome google-chrome-extension

我正在尝试制作我的第一个 chrome 扩展,我希望我的扩展只出现在特定页面上,所以我使用 page_action

list .json

{
    "name": "First",
    "version": "1.0",
    "manifest_version": 2,
    "description": "First extension",

    "page_action": {

        "default_icon": "icon.png",
        "default_popup": "popup.html"
    },

    "permissions" : [
        "tabs"
    ]
}

popup.html

<html>
    <head>
        <script src="test.js"></script>
    </head>
    <body> Some other logic </body>
</html>

test.js

function check(tab_id, data, tab){

    if(tab.url.indexOf("google") > -1){
        chrome.pageAction.show(tab_id);
        alert("inside");

    }

    chrome.tabs.onUpdated.addListener(check);
};

现在,在我打开 google.com 加载扩展后,图标不会出现,我的 javascript 函数也不会被调用。

那么,这种方法哪里出了问题。

Chromium 版本 24.0.1312.2 Ubuntu 12.04 (165266)

最佳答案

为此,您需要有一个后台脚本来监听选项卡更新。您应该像这样更新您的 list :

{
    "name": "First",
    "version": "1.0",
    "manifest_version": 2,
    "description": "First extension",
    "background": { "scripts": ["test.js"] },
    ....

此外,您在函数内部设置监听器,因此它永远不会被执行。

将它移出函数,它应该可以工作

function check(tab_id, data, tab){
    if(tab.url.indexOf("google") > -1){
        chrome.pageAction.show(tab_id);
        alert("inside");

    }

};

chrome.tabs.onUpdated.addListener(check);

关于javascript - Chrome : Page action not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14079943/

相关文章:

css - 使用 CSS 的关键帧动画 - 在 Chrome 中不起作用

python - Flask App 无法使用单个浏览器处理超过 6 个请求

javascript - Chrome 扩展 - 将 CSV 文件上传为 Dropbox 格式问题

javascript - 如何使用 webpack 复制下一个 js "public"文件夹行为?

javascript - 在 Express 中从一条路线重定向到另一条路线

javascript - 我可以通过 URL 向 JavaScript 发送命令吗?

javascript - jquery/css not 选择器不起作用

css - 无法覆盖 CSS 填充

google-chrome - 如何从网页上的十六进制字符串获取颜色?例如,通过选择它

javascript - 拼接函数将相同的元素插入到每个索引中