Opera 拡張機能を作成しているのですが、拡張機能のパスに保存されているいくつかの画像を取得したいと考えています。
このプラグインが行うことは、特定の Web ページで、背景画像の URL と一部のアイコンを拡張機能内のカスタム アイコンに変更することです。
ただし、スクリプトを実行すると、すべてが非表示になり、画像を読み込むことができません。
ロガー内には chrome-extension://invalid/ net::ERR_FAILED
が表示されますが、パスを記録すると正常に見えます。
manifest.json ファイルには、
webRequest と
storage 権限があり、プラグインにはユーザー ファイルを読み取る権限もあり、二重の権限がチェックされています。
私をロックアウトする権限が不足しているのでしょうか?リスト 3 背景画像を変更することはできませんか?
同じスクリプトを Firefox でも実行してみましたが、すべて正常に動作しました。// 現在のプラグイン パスから画像フォルダーを取得します。 let extFolder = chrome.runtime.getURL("images/"); // クロム //let extFolder = extension.getURL("images/"); // Firefox // 次のようになります: chrome-extension://<id>/images/ console.log(extFolder); // 変更する要素を取得します。 let ボード = document.getElementById("ボード"); // 画像を変更します。 board.style.backgroundImage = "url('" extFolder "board.png')";
私が書いた脚本は次のようになりますが、なぜオペラでは機能しないのでしょうか?
これらの画像を Base64 として埋め込んでみましたが、各画像が大きいため、すべての要素が画像をレンダリングできるわけではありません。
さて、問題がどこにあるのかわかりました...それはリスト 3 です。
Firefox で動作する理由は、私がマニフェスト バージョン 2 を使用し、Opera がバージョン 3 を使用しているためです。