13

そのようなことをする方法があるのだろうか:特定のサイトにいる場合、JavaScriptファイルの一部をコンピューターからではなく、コンピューターから直接ロードする必要があります(fe file:///c:/test.js)。サーバー。

そのために、ブラウザーが表示する直前に取得する応答で HTML コードを変更できる拡張機能を作成する可能性があるかどうかを考えていました。したがって、プロセス全体は次のようになります。

  1. リクエストが行われる
  2. ブラウザがサーバーから応答を受け取る
  3. #response is changed# - 拡張子が入ってくる部分です
  4. ブラウザは変更された応答を解析し、その新しい応答でページを表示します。

とにかく、Chrome 拡張機能である必要さえありません。上記の仕事をするだけです。元のファイルをブロックして別のファイル (DNS/プロキシ?) を提供するか、コンピューター内の HTTP トラフィック全体をフィルター処理して、特定のコードを一致した応答の別のものに置き換えることができます。

4

2 に答える 2

3

WebRequest APIを使用してそれを実現できます。たとえば、onBeforeRequestリスナーを追加して、一部のリクエストをリダイレクトできます。

chrome.webRequest.onBeforeRequest.addListener(function(details)
{
  var responseData = "<div>Some text</div>"
  return {redirectUrl: "data:text/html," + encodeURIComponent(responseData)};
}, {urls: ["https://www.google.com/"]}, ["blocking"]);

これ<div>により、Google ホームページの代わりに「some text」というテキストを含む要素が表示されます。Web サーバー自体がリダイレクトを許可されている URL にのみリダイレクトできることに注意してください。これは、file:///URL へのリダイレクトが不可能であることを意味し、拡張機能内のファイルにリダイレクトできるのは、それらがWeb アクセス可能である場合のみです。data:ただし、http:URL は正常に機能します。

于 2011-06-07T09:28:18.693 に答える
1

Windows では、ローカル プロキシである Proxomitron (proxomitron.info) を使用できます。これは、ブラウザーにロードされているページまたはファイルをインターセプトし、正規表現 (DOM 解析なし) を使用して必要に応じて変更できます。ブラウザ。

于 2012-04-06T23:02:37.530 に答える