1

Chrome拡張機能のコンテンツスクリプトを介してグローバルJavaScript変数にアクセスできる簡単な方法はありますか?

Chrome拡張機能のコンテンツスクリプトからグローバルオブジェクトにアクセスする

上記のリンクに記載されている手順に従いましたが、うまくいきませんでした。どんな助けでも大歓迎です。

ありがとう、シャンカー

4

2 に答える 2

0

この質問への答えを探している将来の人のために、これが私がそれをする方法です:

function getVariable(v) {
    var c = document.createElement("div");
    c.id = 'var-data';
    c.style.display = 'none';
    document.body.appendChild(c);
    var s = document.createElement('script');
    s.innerHTML = 'document.getElementById("var-data").innerText=JSON.stringify('+v+');';
    document.head.appendChild(s);
    var data = JSON.parse(c.innerText);
    c.remove();
    s.remove();
    return data;
}

そして基本的な使用法:

getVariable('globalVarIWantToAccess');

このスクリプトはすべて、メインWebページのコードではなく、コンテンツスクリプトに含まれます。つまり、Webページ自体からの協力は必要ありません。基本的に、このgetVariable関数はメインページに挿入されるスクリプト要素を作成します。このスクリプトタグは、要求されたグローバル変数を取得し、データを新しいdivに配置します。次に、この関数は新しいdivからこのデータを取得し、新しいdivを削除し、新しいスクリプト要素を削除してデータを返します。

于 2022-03-03T16:46:14.573 に答える
-1

なんとか完成しました。助けてくれてありがとう。単純なメッセージパッシングを使用して、拡張スクリプトからコンテンツスクリプトに値を取得しました。私が見逃した場所は、拡張スクリプトのリスナーがバックグラウンドページにいる必要があるということでした(私はそう思います)。私がそれを変更すると、それは機能しました。

于 2012-05-15T05:15:35.210 に答える