繁体   English   中英

Chrome上的自己的扩展JavaScript无法正常工作

[英]Own extension javascript on chrome doesn't work

我在这个站点和其他几个站点上进行了查找(但是在此站点上,您可以获得更具体的答案,所以很好。),但是我似乎找不到正确的答案。 许多人提出了类似的问题,但我的问题似乎仍然存在。

我正在尝试制作一个Chrome扩展程序,以通过快捷方式从某些标题中获取文本。 我对脚本还很陌生,所以我的工作方式是逐步完成所有工作。 我已经在第一步失败了。

我会去的。 这是在我的manifest.json中:

  {
        "name": "grab some",
        "description": "grab some texts from html titles",
         "version": "1.0",
            "manifest_version": 2,

       "content_scripts": [ {
          "js": [ "content_scripts.js" ],
          "matches": [ "*://something.com/*"]
       } ]

     }

这是在我的content_scripts.js中:

document.onkeyup=function(y){
  if(y.ctrlKey && y.which == 89) {
    alert('Keyboard shortcut working!');
    return false;
  }
};

document.addEventListener('keyup', doc_keyUp, false); 

我什么也没得到。 如果我将content_scripts.js的确切代码放在JavaScript应用程序中(cjs-extension)。 然后,它完美地工作。 我的问题是:当我尝试在自己的扩展程序中执行此操作时,为什么它不起作用?

顺便说一句, 我提出问题的方式会有一些错误,对此感到抱歉。 但我希望你能理解我要问的问题。

您的扩展程序对我来说很好。 我只是将其放入两个文件(manifest.json和content_scripts.js),然后通过Chrome-> Extensions-> Load unpacked extension(激活开发人员模式)将其加载。 但是,我将“内容”更改为实际上可以访问的页面( "matches": [ "*://stackoverflow.com/*"] )。

这给我留下了以下几点:

  • 您也是德国人,使用英语键盘布局和德语键盘并按ctrl + y,结果是ctrl + z(不是在开玩笑,这是我的第一个错误)
  • 您的matches模式实际上不匹配。 单击扩展页面上的“详细信息”,对我来说它显示“权限:在stackoverflow.com上读取和更改您的数据”
    • 在侧面节点上,因为它在注释中被提及:当您的模式实际上完全废弃时,Chrome会在扩展页面上告诉您。 显然,这并不意味着它确实匹配。
  • 请注意,您不能简单地在“匹配项”中输入任何内容并在其他任何页面上使用扩展名。 这行不通。
  • 还有其他事件正在捕获您的事件,即, useCapture设置为true的addEventListener (请参阅参考资料
  • 您已经修复了该错误,并且忘记了在扩展页面上单击“重新加载”(当我编写扩展时,对我来说发生了很多次)
  • 您必须刷新页面,扩展名才能插入内容脚本。

哦,已经提到了什么:由于该函数不存在,您的第二个addEventListener错误。

未捕获的ReferenceError:在content_scripts.js:8中未定义doc_keyUp

但是,在我的测试中,这不是问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM