(链接到git:https://github.com/Boundarybreaker/NameBlock

我正在开发一个文本替换扩展名,可以通过在popup.html中单击一个按钮来打开和关闭它,但这只是在单击该图标时才发生。 (视频:https://drive.google.com/file/d/0B_3pLT_KI8V8OHJFUHQ5a1JURkE/view?usp=sharing

该按钮的代码为<button class="ui fluid red button" onclick=toggleActive() id="toggle">Toggle Active</button>,而toggleActive()background.js中的一个函数,以及一个侦听器chrome.runtime.onMessage.addListener(toggleActive);。我将如何使按钮正常工作?

最佳答案

onclick是一种内联脚本,因此在弹出窗口中被禁止。

在popup.js中使用myButton.addEventListener('click',toggleActive);
通过以任何常规方式获取myButton,方法是在其html中添加id并使用document.getElementById,或者通过getElementsByClassName, querySelectorAll或任何其他方式。

popup.js中定义的toggleActive可以将消息发送到background.js,侦听器将在其中调用背景的toggleActive,或者您可以使用chrome.runtime.getBackgroundPagechrome.extension.getBackgroundPage来获取背景页面(前者是异步的,后者是同步的,返回背景的窗口对象),然后从此处调用背景toggleActive,如下所示:

var bkg=chrome.extenstion.getBackgroundPage();bkg.toggleActive();

也就是说,如果您确实需要在后台而不是弹出窗口中定义toggleActive。

关于javascript - JavaScript按钮onClick在Chrome扩展程序弹出窗口中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36317641/

10-09 18:17