我有一个 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/