0

これは私の最初のクロム拡張です。

私は基本的に、それに付随する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);
    }
}

これは、Js 関数を呼び出す私の html のサンプル スニペットです。

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

私が得ることができる助けに本当に感謝します。

また、クロムで開いたタブでhtmlが正常に機能することにも言及してください。拡張機能として実行すると機能しません。

4

1 に答える 1

0

ChromeExtensions を使い始めたばかりなので、これは完全な答えではないかもしれませんが、私が目にするいくつかの問題は次のとおりです。

  1. content_scripts はページに挿入され、Web ページの dom にアクセスできますが、JS ではありません
  2. ポップアップは独自のサンドボックスに存在し、そのサンドボックスにあるものにのみアクセスできます
  3. Web ページは content_scripts または popups のいずれかで JS にアクセスできません

PhotoTagger.html は、PhotoTagger.js を参照する「スクリプト」タグを挿入するだけで、独自の JS とやり取りできるはずです。そのために必要な権限はありません。したがって、スニペットが PhotoTagger.html にあり、PhotoTagger.html に PhotoTagger.js への「スクリプト」参照がある場合は問題ありません (また、content_scripts セクション全体を取り除くことができます)。これを実行してもうまくいかない場合は、さらに多くのコードをリンクする必要があるかもしれません。

ただし、その HTML スニペットを含む Web ページを読み込んでいる場合は、機能しません。Web ページは、content_scripts またはポップアップで JS にアクセスできません (これに対する回避策を探していますが、セキュリティ上の問題によりブロックされています)。

于 2013-09-05T15:57:41.710 に答える