Saya membuat ekstensi firefox yang mendapatkan semua url permintaan dan menampilkannya. Tetapi kode tersebut hanya berfungsi jika saya menempelkannya di konsol.
ketika ekstensi dimuat, tidak muncul kesalahan apa pun, sepertinya ekstensi tidak dapat berjalan
ini kode lengkapnya
xhrScript.js
(function(){
const proxiedOpen = XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function ( _, url) {
this.__URL = url;
return proxiedOpen.apply(this, arguments);
};
const proxiedSend = window.XMLHttpRequest.prototype.send;
window.XMLHttpRequest.prototype.send = function () {
const { protocol, host } = window.location;
// showing only when it paste in console
console.log("full request url ", `${protocol}//${host}${this.__URL}`);
return proxiedSend.apply(this, [].slice.call(arguments));
};
})();
// this works all times
document.body.style.border = "7px solid blue";
manifest.json
{
"manifest_version": 2,
"name": "XHR request urls",
"version": "1.0",
"description": "get all the request url's",
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["xhrScript.js"]
}
]
}
Seperti yang Anda lihat, di baris terakhir adalah document.body.style.border = "7px solid blue";
, ini berfungsi dengan baik setiap saat. Namun metode XMLHttpRequest open
dan send
tidak berfungsi. hanya berfungsi jika saya menempelkan kode di konsol.
jika ingin melihat contohnya, coba copy pastekan kode xhrScript.js
di https://reactjs.org (ini SPA, jadi mudah untuk memeriksa apa yang saya inginkan) di konsol devTools, dan melihat semua permintaan.
Saya tidak tahu mengapa kode ini hanya berjalan ketika ditempelkan di konsol