(链接到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.getBackgroundPage
或chrome.extension.getBackgroundPage
来获取背景页面(前者是异步的,后者是同步的,返回背景的窗口对象),然后从此处调用背景toggleActive
,如下所示:var bkg=chrome.extenstion.getBackgroundPage();bkg.toggleActive();
也就是说,如果您确实需要在后台而不是弹出窗口中定义toggleActive。
关于javascript - JavaScript按钮onClick在Chrome扩展程序弹出窗口中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36317641/