1

すべてのページに固定画像を配置する必要がある拡張機能を作成しました。コンテンツ スクリプトは次のとおりです。

imgTop = chrome.extension.getURL('top.png');
var top = document.createElement("img");
top.src=imgTop;
top.position='fixed';
top.zIndex='2353445';
top.top='200';
top.left='20';
document.getElementsByTagName('body')[0].appendChild(top);

エラーが発生します:Uncaught Error: NotFoundError: DOM Exception 8

私が試してうまくいかないこと:

  • スタイルを追加しtop.style.positionます。
  • を使用しdocument.bodyます。

使えるのはわかってるinnerHTMLけど、めんどくさい…

何が間違っているのですか?または、画像を挿入する別の方法はありますか?

4

2 に答える 2

0

top.png を manifest.json に追加していますか?

web_accessible_resources プロパティを定義し、リソースを一覧表示する必要があります (オプションで、それらのリソース用の別のコンテンツ セキュリティ ポリシーを指定することもできます)。

chrome 拡張ドキュメントの URL: https://developer.chrome.com/extensions/manifest.html#web_accessible_resources

于 2013-02-26T03:38:56.833 に答える
0

ここでの問題は、変数の名前が であると思われtop、Chrome がプロパティと混同していwindow.topます。変数名を別の名前に変更すると、次のように機能するはずです。

var topImage = document.createElement('img');
topImage.src = chrome.extension.getURL('top.png');
topImage.style.position = 'fixed';
topImage.style.zIndex = '2353445';
topImage.style.top = '200px';
topImage.style.left = '20px';
document.body.appendChild(topImage);

その他のこと: スタイル プロパティは を通じてアクセスされます。element.style.propertyボディに対して何かを行う場合は、 を使用するだけdocument.bodyです。また、画像の URL 用に個別の変数を用意する必要はありませtopImage.srcん。特に一度だけ呼び出す場合は、ここで同様の変数を直接呼び出すだけです。

于 2013-02-25T23:12:27.410 に答える