6

私が使用するとき:

<img src="chrome://favicon/http://www.google.com.hk"/>

私の拡張機能で、何か問題が発生しました。警告しました。

「ローカルリソースの読み込みは許可されていません:chrome:// favicon / http://www.google.com.hk」

どうすれば修正できますか?

4

3 に答える 3

5

"chrome://favicon/" 権限を追加したことを再確認してください。

これは"manifest_version" : 2延長ですか?私はそれらに精通していませんが、これを許可するコンテンツ セキュリティ ポリシーを指定する必要がある場合があります。

于 2012-04-25T03:17:24.997 に答える
4

私は同じ問題に遭遇しました。chrome://favicon/ は、拡張機能が作成したポップアップやタブなどの拡張機能独自のページでのみ機能することを試してみました。挿入されたコンテンツ スクリプトから通常のタブにロードすると機能しません。

挿入されたコンテンツ スクリプトからファビコンをロードする場合、いくつかの方法があります。

  1. 最初のものは、いくつかのサービスへのリクエストを使用して、Web の favicon を取得することです。例: http://www.google.com/s2/favicons?domain=https://stackoverflow.com/ https 経由で読み込まれるページにコンテンツ スクリプトが挿入されることを除いて、この方法は正常に機能します。理由は混合コンテンツのブロックによるものです

  2. 2 つ目は、chrome://favicon/ からバックグラウンドでファビコンを読み込み、コンテンツ スクリプトに転送することです。

例: この関数は、バックグラウンド スクリプトで実行するために使用されます

function fetchFavicon(url) {
    return new Promise(function(resolve, reject) {
        var img = new Image();
        img.onload = function () {
            var canvas = document.createElement("canvas");
            canvas.width =this.width;
            canvas.height =this.height;

            var ctx = canvas.getContext("2d");
            ctx.drawImage(this, 0, 0);

            var dataURL = canvas.toDataURL("image/png");
            resolve(dataURL);
        };
        img.src = 'chrome://favicon/' + url;
    });
}

私は自分の拡張機能にこの方法を使用していますが、うまく機能しています。Super Focus Tabs拡張機能をご覧ください。

于 2014-10-15T02:09:13.310 に答える
3

同じ問題があり、Google 開発者サイトで検索した結果、にアクセス許可を追加する必要があることがわかりましchrome://favicon/manifest.json

次に、に移動しchrome://extensionsてリロードを押して、マニフェストの変更を読み取ります。

注: 末尾のスラッシュは重要です!

于 2015-03-11T12:44:51.117 に答える