0

私はFirefox拡張機能に取り組んでおり、拡張機能(正式な名前があるかどうかはわかりませんが、chrome://を使用してアクセスする種類)とともに保存された画像を追加しようとしています。

body.innerHTML+="<div style=\"position:fixed;top:0em;left:0em;background-color:white;\"><img src=\"chrome://tumblrscrollr/content/save.png\" /></div>";

これにより、ページの左上にsave.pngが配置されますが、そこには何も表示されません(白い背景も表示されません)。chrome://tumblrscrollr/content/save.pngをインターネット上のURLに置き換えると、画像が正しく表示されます。アドレスバーで直接chrome://tumblrscrollr/content/save.pngにアクセスすると、正常に表示されます。ページ内のimgタグが拡張機能のファイルにアクセスできないセキュリティ上の問題があると思いますが、Googleは記号をサポートしておらず、「chrome」を検索するとブラウザが返されるだけなので、答えを見つけるのは非常に難しいです。

4

1 に答える 1

3

contentaccessiblechromeパッケージのフラグを使用する必要がありtumblrscrollrます。これにより、Webページでその画像を使用できるようになります。つまり、chrome.manifestファイルには次のような行が必要です。

content tumblrscrollr foo/bar contentaccessible=yes

このフラグは常にエントリで指定する必要がありますが、たとえば、意味でcontent始まるすべてのアドレスに影響することに注意してください。chrome://tumblrscrollr/chrome://tumblrscrollr/skin/

ところで、そのような要素を追加しないでください。これにより、ブラウザがドキュメント本文全体を再度解析するようになり、速度が低下し、あらゆる種類の副作用が発生する可能性があります。単一の要素を追加する必要がある場合は、その要素を作成して追加します。例:

var element = body.ownerDocument.createElement("div");
element.setAttribute("style", "position:fixed;top:0em;left:0em;background-color:white;");
element.innerHTML = "<img src=\"chrome://tumblrscrollr/content/save.png\" />";
body.appendChild(element);
于 2012-09-13T07:31:39.033 に答える