5

デバッグ目的で、Google Chrome のコンソールからユーザー スクリプト変数にアクセスすることは可能ですか?

4

3 に答える 3

2

次のコードを含む Chrome ユーザースクリプトがあるとします。

var userscriptVar = "I'm a global variable, userscript context.";
window.var2       = "I'm a window.scope variable, userscript context.";

console.log ("Hello from the userscript.");


これらのユーザースクリプト変数にアクセスするには:

  1. ユーザースクリプトの ID を決定します。拡張機能ページ ( chrome://extensions/)で確認できます。

    スクリプトの ID を取得する

  2. コンソールの下部にあるコンテキスト メニューをクリックして、スクリプトのコンテキストに切り替えます。

    ユーザースクリプト スコープに切り替える

    id ( pfnbaeafniclcjhfkndoploalomdmgkc) は、拡張機能ページにリストされているものと同じであることに注意してください。

  3. これで、ウィンドウ スコープの変数 ( ) をすぐに確認して変更できるようになりますvar2が、ユーザー スクリプトのグローバル ( userscriptVar) は表示されません。:

    スクリプト実行後のスクリプト変数へのアクセス

  4. ユーザースクリプト変数にアクセスして変更するには、スクリプトがまだアクティブなときに、スクリプトにブレークポイントを設定し、デバッガーを使用します。その方法については、この回答を参照してください。

    (クリックすると大きな画像が表示されます)
    ブレークポイントで一時停止したユーザースクリプト

  5. 適切なブレークポイントでユーザースクリプトを一時停止すると、コンソールからグローバル値を確認できますが、変更することはできません。

    (クリックすると大きな画像が表示されます)
    コンソールから変更できません

  6. ただし、デバッガーから値を変更できます。

    (クリックすると大きな画像が表示されます)
    値の設定

于 2013-10-11T02:04:16.473 に答える
1

うーん、はい。変数名を入力してEnterキーを押すだけで評価できます(dir(xxx)オブジェクトに使用)

注意: var はグローバルに設定する必要がありますunsafeWindow

于 2011-01-09T21:45:06.457 に答える
0

私にとってうまくいったのは、変数をグローバルにしたことです。すなわち

var x = "Chairman Mao";  // x not accessible to chrome
    x = "Chairman Mao";  // X becomes accessible to chrome via inspector
于 2014-01-14T08:00:40.097 に答える