Chrome扩展程序清单权限

时间:2013-09-05 11:25:47

标签: javascript jquery html google-chrome permissions

这是我的第一个chrome扩展程序。

我基本上已经编写了一个html文件,其中包含一个javascript文件。我注意到显然你必须将javascript作为单独的文件放到html文件中。没关系。做过某事。在html标题中引用它。

但我不知道如何设置清单文件以便能够在我的弹出式html页面上使用javascript。

javascript不使用jquery。这是纯粹的javascript。

我不确定必须包含在清单中的必需或可选权限(如果有)。到目前为止,我所知道的是,我可能必须在那里包含“clipboardRead”权限。

或者我的意思是在清单中使用content_scripts。

这是我的表现。

{
  "manifest_version": 2,

  "name": "PhotoTagger",
  "description": "This extension helps you create your hashtags for your posts, quickly.",
  "version": "1.0",

  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["PhotoTagger.js"]
    }
  ],

  "permissions": [
    "clipboardRead",
  ],

  "browser_action": {
    "default_icon": "icons/Google-plus-19x19.png",
    "default_popup": "PhotoTagger.html"
  }
}

我的javascript中的示例函数就是这个(PhotoTagger.js):

function selectText(containerid) {
    if (document.selection) {
        var range = document.body.createTextRange();
        range.moveToElementText(document.getElementById(containerid));
        range.select();
    } else if (window.getSelection) {
        var range = document.createRange();
        range.selectNode(document.getElementById(containerid));
        window.getSelection().addRange(range);
    }
}

这是我的html调用Js函数的示例片段:

<li id="#Sydney" onclick="selectText('#Sydney')">
    <input id="al2" type="checkbox" value="#Sydney +104262770460851770269"/>
    #Sydney</li>

非常感谢我能得到的任何帮助。

另外提到html在chrome中打开的选项卡上运行正常。当我作为扩展程序运行它时,它不起作用。

1 个答案:

答案 0 :(得分:0)

我刚刚开始使用ChromeExtensions,所以这可能不是一个完整的答案,但我看到了一些问题:

  1. content_scripts被注入页面并可以访问 网页的dom,但不是它的JS
  2. 弹出窗口位于自己的沙箱中,只能访问该沙箱中的内容
  3. 网页无法访问content_scripts或弹出窗口中的JS
  4. PhotoTagger.html应该能够与自己的JS进行交互,只需输入引用PhotoTagger.js的“脚本”标签即可。没有必要的权限。因此,如果你的代码片段在PhotoTagger.html中并且PhotoTagger.html中有一个对PhotoTagger.js的“脚本”引用,那么你应该没问题(你可以摆脱整个content_scripts部分)。如果您正在执行此操作并且它不起作用,则可能需要链接更多代码。

    但是,如果您正在加载包含该html代码段的网页,则无法使用。该网页无法访问content_scripts或弹出窗口中的JS(我仍在为此寻找解决方法,但由于安全问题而被阻止)。