首頁 > web前端 > js教程 > 主體

為什麼我的 Chrome 擴充功能彈出按鈕點擊事件不起作用?

Patricia Arquette
發布: 2024-11-25 18:19:11
原創
568 人瀏覽過

Why is my Chrome Extension Popup Button Click Event Not Working?

對停用點擊事件的擴充功能彈出視窗進行故障排除

開發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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板