나는 단지 MDN example chrome extension을 사용하려고합니다. 여기의 manifest.json은Chrome 확장 프로그램 차단 webRequest가 전혀 작동하지 않는 것 같습니다.
{
"description": "Altering HTTP responses",
"manifest_version": 2,
"name": "http-response-filter",
"version": "1.0",
"homepage_url":
"https://github.com/mdn/webextensions-examples/tree/master/http-response",
"icons": {
"48": "SA-48x48.png"
},
"background": {
"scripts": ["background.js"]
}
}
이며, 여기에 background.js이
function listener(details) {
console.log("******listen");
let filter = browser.webRequest.filterResponseData(details.requestId);
let decoder = new TextDecoder("utf-8");
let encoder = new TextEncoder();
filter.ondata = event => {
let str = decoder.decode(event.data, { stream: true });
// Just change any instance of Example in the HTTP response
// to WebExtension Example.
str = str.replace(/Example/g, "WebExtension Example");
filter.write(encoder.encode(str));
filter.disconnect();
};
return {};
}
console.log("******");
browser.webRequest.onBeforeRequest.addListener(
listener,
{ urls: ["https://example.com/*"], types: ["main_frame"] },
["blocking"]
);
그래서 내가
- 에 내가
example.com
을로드 할 때 부부가 밖으로 console.logs 넣어 그것을 기대입니다
- MDN 사람들이 말한 "예제"에서 "WebExtension 예제"로 수정하십시오.
그러나 전혀 작동하지 않습니다. (Chrome을 사용하고 있으며 확장 프로그램으로 확장 프로그램에 추가했습니다. 이전에 다른 크롬 확장 프로그램을 사용 했었지만 배경 스크립트를 처음 사용했습니다.).
배경 스크립트가 실행되는 것을 차단할 수 있습니까? 내가 올바른 방식으로 구성하지 않았습니까? 올바른 방향으로 나를 가르쳐 주셔서 감사합니다.
크롬이 작동하지 않도록 응답 본문을 수정 지원하지 않습니다. – wOxxOm
사실이라고 생각하지 않습니다. MDN에서 직접 가져 왔으며이 API를 사용하는 다른 확장 (예 : SmileAlways)을 보았습니다. 여기에 설치가 있다고 생각 하나? – swyx
사실 내 질문에 대한 답변이 아니기 때문에 내 게시물을 삭제했습니다. 의견은 제안에 더 적합합니다. \t console.log는 스크립트가로드 된 경우 콘솔에 무엇인가를 인쇄해야하므로로드되지 않도록 할 수 있습니다. 그런데 - 디버깅 할 때 확장 기능의 배경 페이지를 검사하고 있습니까? – maxpaj