對停用點擊事件的擴充功能彈出視窗進行故障排除
開發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中文網其他相關文章!