繁体   English   中英

Chrome Extension Manifest权限

[英]Chrome Extension Manifest permissions

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

我基本上已经写了一个带有javascript文件的html文件。 我注意到,显然您必须将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中打开的选项卡上工作正常。 当我将其作为扩展运行时不起作用。

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

  1. content_scripts被注入到页面中并可以访问网页的dom,但不是JS
  2. 弹出窗口位于其自己的沙箱中,并且只能访问该沙箱中的内容
  3. 网页无法在content_scripts或弹出窗口中访问JS

仅通过放入引用PhotoTagger.js的“脚本”标签,PhotoTagger.html就应该能够与其自己的JS进行交互。 不需要任何权限。 因此,如果您的代码段位于PhotoTagger.html中,并且在PhotoTagger.html中有一个“脚本”对PhotoTagger.js的引用,那么您应该没事(您可以摆脱整个content_scripts部分)。 如果您这样做却行不通,则可能需要链接更多代码。

但是,如果您正在加载带有该html代码段的网页,则它将无法正常工作。 该网页无法访问content_scripts或弹出窗口中的JS(我仍在寻找解决方法,但由于安全问题而被阻止)。

暂无
暂无

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

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