Javascript按钮onClick无法在Chrome扩展程序弹出窗口中使用

时间:2016-03-30 19:10:15

标签: javascript html css google-chrome google-chrome-extension

(链接到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);。如何让按钮正常工作?

2 个答案:

答案 0 :(得分:0)

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

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

popup.js中定义的

toggleActive可以向background.js发送消息,监听器将调用后台toggleActive,或者您可以获取{{1}的后台页面}或chrome.runtime.getBackgroundPage(前者是异步,后者是同步,返回背景窗口对象)并从此处调用背景chrome.extension.getBackgroundPage,如下所示:

toggleActive

也就是说,如果你真的需要在后台而不是弹出窗口中定义你的toggleActive。

答案 1 :(得分:-1)

我认为你应该这样做:

<button class="ui fluid red button" onclick="toggleActive()" id="toggle">Toggle Active</button>

在onclick上忘记了括号。