試したコードは以下のとおりです
javascript
1function listener(details) { 2 let filter = browser.webRequest.filterResponseData(details.requestId); 3 let decoder = new TextDecoder("utf-8"); 4 let encoder = new TextEncoder(); 5 6 filter.ondata = event => { 7 let str = decoder.decode(event.data, {stream: true}); 8 str = str.replace('hoge', 'hogehoge'); 9 filter.write(encoder.encode(str)); 10 filter.disconnect(); 11 } 12 13 return {}; 14} 15 16chrome.webRequest.onBeforeRequest.addListener( 17 listener, 18 {urls: ["https://example.com/hoge*"]}, 19 ["blocking"] 20); 21
javascript
1var pattern = "https://example.com/hoge*"; 2 3function redirect(requestDetails) { 4 return { 5 redirectUrl: "https://example.com/hogehoge.js" 6 }; 7} 8 9chrome.webRequest.onBeforeRequest.addListener( 10 redirect, 11 {urls:[pattern]}, 12 ["blocking"] 13);
リダイレクトのスクリプトはタブで開けば問題なくリダイレクトされますが、
scriptタグなどで読み込んだリクエストはリダイレクトされません。
また、書き換えのスクリプトは一切機能しませんでした。
エラーメッセージは一切表示されていません。
なにか解決策はありませんか?
##動作確認に使用したブラウザ
windows firefox 94.0.1
windows chrome 95.0.4638.69
※ブラウザごとにchrome.webRequest.onBeforeRequestの部分はbrowserに書き換えています。
あなたの回答
tips
プレビュー