Chrome上自带的扩展程序javascript无效

时间:2017-07-31 07:25:08

标签: javascript google-chrome google-chrome-extension

我查看了这个网站和其他几个网站(但是在这个网站上你得到了更具体的答案,这样很好。)但我似乎无法找到正确的答案。很多人问了类似的问题,但我的问题似乎仍然存在。

我尝试制作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)中。然后它完美地运作。我的问题是:当我尝试在我自己的扩展中执行此操作时,为什么它不起作用?

顺便说一句;我问我问题的方式会有一些错误,对不起。但我希望你明白我想问的是什么。

1 个答案:

答案 0 :(得分:0)

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

这让我有以下几点:

  • 你也是德国人,使用带有德语键盘的英文键盘布局并按下ctrl + y,结果是ctrl + z(不是开玩笑,这是我的第一个错误)< / LI>
  • 您的matches模式实际上并不匹配。点击扩展页面上的“详细信息”,对我来说,它说“权限:在stackoverflow.com上读取和更改数据”
    • 在侧节点上,因为评论中提到过:当您的模式实际上是完全废话时,Chrome会在扩展页面上告诉您。显然,这并不意味着它确实不匹配。
  • 请注意,您不能在“匹配”中输入任何内容,并在任何其他页面上使用该扩展程序。这不起作用。
  • 其他一些事件正在捕捉你的事件,即addEventListener useCapture设为真(见reference
  • 您已经修复了错误并忘记点击扩展页面上的“重新加载”(当我编写扩展程序时,很多时候都会发生错误)
  • 您必须在扩展程序插入内容脚本之前刷新页面。

哦,已经提到过:你的第二个addEventListener正在抛出错误,因为函数不存在。

  

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

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