javascript - 如果我希望在单击扩展时运行 javascript,则绕过 "no popup"

标签 javascript google-chrome google-chrome-extension popup browser-action

我有一个 chrome 扩展,每当我按下弹出窗口时我都想触发它。目前我只有从 manifest.json 中删除 popup.html 才能执行此操作,因为对此有限制。但是,我需要 popup.html

如何同时获得两者?

我试过在 popup.html、popup.js(在 popup.html 中正确链接)中到处放置完全相同的东西,但什么也没有。

简而言之,如果我将它放在 background.js 中:

chrome.browserAction.onClicked.addListener(function(info, tab) {
    speakMe();
    });

有效。

但是,这意味着 list 中没有 popup.html。所以,很自然地,我尝试放置这个:

    <script>
    chrome.browserAction.onClicked.addListener(function(info, tab) {
  speakMe();
});
    </script>

在 popup.html 中。它不起作用。按图标正常显示弹出窗口,但没有任何反应。

我也试过将它放在 popup.js 中,仍然没有。我做错了什么?

最佳答案

在您的 popup.js 中添加一个 onload 监听器:

onload = function() { console.log("I loaded!"); };

在该函数中,您可以在弹出窗口出现时做一些有趣的事情。如果您想比这更花哨,您可能会遇到 https://code.google.com/p/chromium/issues/detail?id=31262 中描述的问题。 .

顺便说一下,您还没有告诉我们“它不起作用”是什么意思(哪一行失败了?是否有控制台错误消息?),因此很难确定这个答案(或任何答案)是否有用给你。参见 https://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist了解可遵循的步骤以确保给出的答案是您问题的答案。

关于javascript - 如果我希望在单击扩展时运行 javascript,则绕过 "no popup",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17645977/

相关文章:

javascript - 使用 base64 编码文本而不是 multipart/form-data 上传文件 - 好主意?

Javascript:从 HTML 表单获取上传文件的详细信息

javascript - ajax 刷新后 TinyMCE init 失败

javascript - 清除 Chrome 调试器中的 XHR 资源列表

javascript - 抽象 chrome 打包应用程序文件系统以与 node-webkit 一起使用

javascript - event.stopPropagation 停止实时事件的传播,尽管它不应该

javascript - webkit 中的意外 token ILLEGAL

html - Chrome 不再显示文本

javascript - 在Chrome native 消息传递中: how long is the native app instance object lifetime?

css - -webkit-transform : transformY? 的替代方案