1

JavaScript と CSS を YouTube ページに挿入しています。ドキュメントは、これが可能であることを示しているようです。私は何か間違ったことをしていますか?これはYouTubeのことですか?それとも、コンテンツ スクリプトでインジェクションが壊れていますか?

  "content_scripts": [
    {
      "matches": ["http://www.youtube.com/watch?v*"],
      "css": ["ChromeExtension/css/inject.css"],
      "js": ["Shared/js/thirdParty/jquery.js", "ChromeExtension/js/inject.js"]
    }
  ],

  "web_accessible_resources": [
    "ChromeExtension/css/inject.css",
    "ChromeExtension/icon.png"
  ]

これが私の関連するmanifest.jsonです。

今、content_script を介して inject.css をリクエストしただけで、youtube.com にリクエストが表示されません。ただし、CSS ファイルを web_accessible_resource として定義すると、次のように JavaScript を介して CSS をロードできます。

var link = document.createElement('link');
link.href =  chrome.extension.getURL('ChromeExtension/css/inject.css');
link.rel = 'stylesheet';
document.documentElement.insertBefore(link);

明らかな理由はありますか?

4

1 に答える 1

-1

コンテンツスクリプトで相対パスを避け、すべてのJSおよびCSSコードをルートパスに入れてみてください

"content_scripts": [
    {
      "matches": ["http://www.youtube.com/watch?v*"],
      "css": ["inject.css"],
      "js": ["jquery.js", "inject.js"]
    }
]

多くのファイルがあり、フォルダ構造を乱したくない場合は、ロード時にプログラムによるインジェクションを使用できます。

元:

onload = function (){
    chrome.tabs.executeScript(null, {file: "path"});
}
于 2012-11-16T12:52:15.260 に答える