簡體   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