説明
chrome.devtools.inspectedWindow API を使用して、検査対象ウィンドウを操作します。検査対象ページのタブ ID の取得、検査対象ウィンドウのコンテキストにおけるコードの評価、ページの再読み込み、ページ内のリソースリストの取得を行います。
デベロッパー ツール API の使用方法の概要については、DevTools API の概要をご覧ください。
tabId プロパティは、chrome.tabs.* で使用できるタブ識別子を提供します。
API 呼び出し。ただし、chrome.tabs.* API はデベロッパー ツールに公開されません。
(セキュリティ上の考慮事項により)拡張機能ページ(タブ ID をバックグラウンドに渡す必要があります)
そこから chrome.tabs.* API 関数を呼び出します。
検査対象のページを再読み込みするために、reload メソッドを使用できます。さらに、呼び出し元は
ユーザー エージェント文字列のオーバーライド、ページ読み込みの早い段階で挿入されるスクリプト、
キャッシュに保存されたリソースを強制的に再読み込みすることもできます。
getResources 呼び出しと onResourceContent イベントを使用してリソースのリストを取得します。
(ドキュメント、スタイルシート、スクリプト、画像など)を返します。getContent と
Resource クラスの setContent メソッドと onResourceContentCommitted イベントを併用すると、
外部編集者などによるリソース コンテンツの変更をサポートするために使用する。
マニフェスト
検査対象のウィンドウでコードを実行する
eval メソッドを使用すると、拡張機能が次のコンテキストで JavaScript コードを実行できるようになります。
表示されます。この方法は、適切なコンテキストで使用すると効果的で、使用すると危険である
除外します特定の機能が必要な場合を除き、tabs.executeScript メソッドを使用します。
eval メソッドで提供される機能のセットです。
eval メソッドと tabs.executeScript メソッドの主な違いは次のとおりです。
- evalメソッドは評価対象のコードに隔離された環境を使用しないため、JavaScript では 検査対象ウィンドウの状態をコードからアクセスできる状態に保つ必要があります。このメソッドは、 検査対象ページの JavaScript 状態は必須です。
- 評価対象のコードの実行コンテキストには、Developer Tools Console API が含まれます。
たとえば、inspectと$0を使用できます。
- 評価されたコードは、拡張機能のコールバックに渡される値を返すことがあります。戻り値 有効な JSON オブジェクトである必要があります(プリミティブ型と非巡回型と 参照など)が含まれます。受け取ったデータの処理には細心の注意を払ってください 検査対象ページからのアクセス - 実行コンテキストは基本的に検査対象ページによって制御されます。 拡張機能に返されるデータに影響する可能性があります。
なお、1 つのページに複数の JavaScript 実行コンテキストが含まれている場合があります。各フレームには、 その拡張機能でコンテンツ スクリプトを実行している各拡張機能に関する追加コンテキストが クリックします。
デフォルトでは、eval メソッドは検査対象ページのメインフレームのコンテキストで実行されます。
eval メソッドは、オプションの 2 番目の引数を取ります。この引数を使用して、
コードが評価されますこの options オブジェクトには、以下のキーを 1 つ以上含めることができます。
- frameURL
- 検査対象ページのメインフレーム以外のフレームを指定するために使用します。
- contextSecurityOrigin
- ウェブオリジンに従って、指定したフレーム内のコンテキストを選択するために使用します。
- useContentScriptContext
- true の場合、拡張機能のコンテンツ スクリプトと同じコンテキストでスクリプトを実行します。( 拡張機能独自のウェブ組織をコンテキスト セキュリティ オリジンとして指定します)これを使用して コンテンツスクリプトとデータをやり取りします。
例
次のコードは、検査対象のページで使用されている jQuery のバージョンを確認します。
chrome.devtools.inspectedWindow.eval(
  "jQuery.fn.jquery",
  function(result, isException) {
    if (isException) {
      console.log("the page is not using jQuery");
    } else {
      console.log("The page is using jQuery v" + result);
    }
  }
);
この API を試すには、chrome-extension-samples から devtools API の例をインストールします。 できます。
型
Resource
検査対象ページ内のリソース(ドキュメント、スクリプト、画像など)。
プロパティ
- 
    URL文字列 リソースの URL。 
- 
    getContentvoid リソースのコンテンツを取得します。 getContent関数は次のようになります。(callback: function) => {...} - 
    callback関数 callbackパラメータは次のようになります。(content: string, encoding: string) => void - 
    コンテンツ文字列 リソースのコンテンツ(エンコードされる可能性がある)。 
- 
    encoding文字列 コンテンツがエンコードされていない場合は空で、それ以外の場合はエンコード名。現在サポートされているのは base64 のみです。 
 
- 
    
 
- 
    
- 
    setContentvoid リソースの内容を設定します。 setContent関数は次のようになります。(content: string, commit: boolean, callback?: function) => {...} - 
    コンテンツ文字列 リソースの新しいコンテンツ。現在サポートされているのは、テキストタイプのリソースのみです。 
- 
    commitブール値 ユーザーがリソースの編集を終了し、リソースの新しいコンテンツを保持する必要がある場合は true、ユーザーによるリソースの編集中に送信された軽微な変更である場合は false です。 
- 
    callback関数(省略可) callbackパラメータは次のようになります。(error?: object) => void - 
    エラーオブジェクト(省略可) リソース コンテンツが正常に設定された場合は未定義に設定されます。それ以外の場合はエラーになります。 
 
- 
    
 
- 
    
プロパティ
tabId
検査対象のタブの ID。この ID は chrome.tabs で使用できます*。ウェブベースのツールです
タイプ
数値
メソッド
eval()
chrome.devtools.inspectedWindow.eval(
expression: string,
options?: object,
callback?: function,
): void
検査対象ページのメインフレームのコンテキストで JavaScript 式を評価します。式は JSON 準拠のオブジェクトとして評価される必要があります。そうでない場合は、例外がスローされます。eval 関数は、評価中に発生した DevTools 側のエラーまたは JavaScript 例外をレポートできます。いずれの場合も、コールバックの result パラメータは undefined です。DevTools 側のエラーの場合、isException パラメータは null ではなく、isError が true に設定され、code がエラーコードに設定されます。JavaScript エラーの場合、isException は true に設定され、value はスローされたオブジェクトの文字列値に設定されます。
パラメータ
- 
    式文字列 評価する式。 
- 
    オプションオブジェクト(省略可) options パラメータには 1 つ以上のオプションを指定できます。 - 
    frameURL文字列(省略可) 指定すると、式は指定された URL と一致する URL の iframe で評価されます。デフォルトでは、式は検査対象ページのトップフレームで評価されます。 
- 
    scriptExecutionContext文字列(省略可) Chrome 107 以降指定されたオリジンに一致する拡張機能のコンテンツ スクリプトのコンテキストで式を評価します。指定すると、scriptExecutionContext が「true」をオーバーライドuseContentScriptContext で設定します。 
- 
    useContentScriptContextブール値(省略可) 検査対象のページにコンテンツ スクリプトがすでに挿入されている場合、呼び出し元の拡張機能のコンテンツ スクリプトのコンテキストで式を評価します。そうでない場合、式は評価されず、 isErrorフィールドが true に設定され、codeフィールドがE_NOTFOUNDに設定されたオブジェクトに設定された例外パラメータでコールバックが呼び出されます。
 
- 
    
- 
    callback関数(省略可) callbackパラメータは次のようになります。(result: object, exceptionInfo: object) => void - 
    件の結果オブジェクト 評価の結果。 
- 
    exceptionInfoオブジェクト 式の評価中に例外が発生した場合に、詳細を提供するオブジェクト。 - 
    コード文字列 式が評価される前に DevTools 側でエラーが発生した場合に設定します。 
- 
    description文字列 式が評価される前に DevTools 側でエラーが発生した場合に設定します。 
- 
    詳細任意 式が評価される前に DevTools 側でエラーが発生した場合に設定します。説明の文字列に代入される値の配列が含まれ、エラーの原因に関する詳細情報を提供します。 
- 
    isErrorブール値 式が評価される前に DevTools 側でエラーが発生した場合に設定します。 
- 
    isExceptionブール値 評価されたコードが処理できない例外を生成する場合に設定されます。 
- 
    値文字列 評価されたコードが処理できない例外を生成する場合に設定されます。 
 
- 
    
 
- 
    
getResources()
chrome.devtools.inspectedWindow.getResources(
callback: function,
): void
検査対象のページからリソースのリストを取得します。
reload()
chrome.devtools.inspectedWindow.reload(
reloadOptions?: object,
): void
検査されたページを再読み込みします。
パラメータ
- 
    reloadOptionsオブジェクト(省略可) - 
    ignoreCacheブール値(省略可) true の場合、ローダーは、 loadイベントが発生する前に読み込まれた検査対象ページリソースについて、キャッシュをバイパスします。これは、検査されたウィンドウまたはデベロッパー ツール ウィンドウで Ctrl+Shift+R キーを押すのと同様です。
- 
    injectedScript文字列(省略可) 指定すると、検査対象ページのすべてのフレームを読み込んだ直後に、そのフレームのスクリプトの前にスクリプトが挿入されます。その後の再読み込み(ユーザーが Ctrl+R キーを押した場合など)ではスクリプトが挿入されません。 
- 
    userAgent文字列(省略可) 指定すると、検査対象ページのリソースを読み込む際に送信される User-AgentHTTP ヘッダーの値がこの文字列によってオーバーライドされます。この文字列は、検査対象ページ内で実行中のスクリプトに返されるnavigator.userAgentプロパティの値もオーバーライドします。
 
- 
    
イベント
onResourceAdded
chrome.devtools.inspectedWindow.onResourceAdded.addListener(
callback: function,
)
検査対象のページに新しいリソースが追加されると呼び出されます。
onResourceContentCommitted
chrome.devtools.inspectedWindow.onResourceContentCommitted.addListener(
callback: function,
)
リソースの新しいリビジョンが commit されたときに呼び出されます(ユーザーが編集したバージョンのリソースをデベロッパー ツールに保存する場合など)。