Javascript按钮单击在Chrome扩展弹出窗口中不起作用
Javascript Button onClick not working in Chrome extension popup
(链接到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);
通过在其html中添加id并使用document.getElementById
,或通过getElementsByClassName, querySelectorAll
或任何其他方式,以任何常规方式获取myButton
。
popup.js中定义的toggleActive
可以向background.js发送消息,在那里侦听器将调用后台的toggleActive
,也可以使用chrome.runtime.getBackgroundPage
或chrome.extension.getBackgroundPage
(前者是异步的,后者是同步的,返回后台的窗口对象)获取后台页面,并从这里调用后台toggleActive
,如下所示:
var bkg=chrome.extenstion.getBackgroundPage();
bkg.toggleActive();
也就是说,如果你真的需要在后台而不是弹出窗口中定义toggleActive。
我认为你应该这样做:
<button class="ui fluid red button" onclick="toggleActive()" id="toggle">Toggle Active</button>
点击后你忘记了括号。
- Angular$scope在模式窗口内不起作用
- JS-窗口宽度函数不起作用
- 剑道UI下拉列表在剑道窗口内不起作用
- 执行angularJS窗口警报不起作用
- FB.login有效,但弹出窗口不起作用;t关闭
- PHP变量作为Javascript弹出窗口不起作用
- 弹出窗口不起作用(未打开)Java 小程序
- 为什么简单的 JQuery 对话框/弹出窗口不起作用
- jQuery 模型弹出窗口不起作用
- ExtJS 窗口不起作用
- jQuery弹出窗口不起作用 - 简单的自定义弹出窗口
- Javascript弹出窗口不起作用
- JavaScript 确认弹出窗口不起作用
- 为什么在 Indesign 中关闭窗口不起作用
- Gmaps4Rails-自定义信息窗口不起作用
- window.focus()对父窗口不起作用
- Jquery 弹出窗口将选定的复选框值传递到父窗口不起作用
- 关闭引导弹出窗口不起作用
- 语义 UI 动态弹出窗口不起作用
- 关闭ajax弹出窗口不起作用