对禁用点击事件的扩展程序弹出窗口进行故障排除
开发 Chrome 扩展程序时,可能会遇到弹出窗口无响应或鼠标单击事件的情况不予处理。此问题可能会导致扩展程序无法正常运行。
问题描述:
用户创建了一个 Chrome 扩展程序弹出窗口,其中包含一个用于在单击时递增变量的按钮。但是,单击按钮不会触发递增变量的预期行为。提供了manifest.json文件和弹出窗口的HTML页面代码:
manifest.json:
{ "name":"Facebook", "version":"1.0", "description":"My Facebook Profile", "manifest_version":2, "browser_action":{ "default_icon":"google-plus-red-128.png", "default_popup":"hello.html" } }
hello.html(Popup页):
<!DOCTYPE html> <html> <head> <script> var a=0; function count() { a++; document.getElementById("demo").innerHTML=a; return a; } </script> </head> <body> <p>
调查:
调查显示,该问题是由于 Chrome 强制执行的默认内容安全策略 (CSP) 造成的。 CSP 禁止内联 JavaScript 执行,该内联 JavaScript 在弹出 HTML 页面中用于处理点击事件。
解决方案:
要解决此问题,请使用内联 JavaScript HTML 文件被删除并放置在单独的 JS 文件中:
hello.html (Popup Page):
<!DOCTYPE html> <html> <head> </head> <body> <p>
popup.js:
var a=0; function count() { a++; document.getElementById('demo').textContent = a; } document.getElementById('do-count').onclick = count;
通过此更改,弹出窗口现在将在按钮按下时按预期增加变量被点击。
以上是为什么我的 Chrome 扩展程序弹出按钮点击事件不起作用?的详细内容。更多信息请关注PHP中文网其他相关文章!