首页 > web前端 > js教程 > 为什么我的 Chrome 扩展程序弹出按钮点击事件不起作用?

为什么我的 Chrome 扩展程序弹出按钮点击事件不起作用?

Patricia Arquette
发布: 2024-11-25 18:19:11
原创
671 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板