4
Safari擴展有沒有像Chromium的chrome.webRequest
?我通過他們的文檔here。我能找到的最接近的是SafariBeforeNavigateEvent
。這將阻止新的頁面加載,但仍然會將請求發送到服務器。此外,我不認爲它會在AJAX請求上調用監聽器。任何人試過類似的東西?如何攔截網絡請求
Safari擴展有沒有像Chromium的chrome.webRequest
?我通過他們的文檔here。我能找到的最接近的是SafariBeforeNavigateEvent
。這將阻止新的頁面加載,但仍然會將請求發送到服務器。此外,我不認爲它會在AJAX請求上調用監聽器。任何人試過類似的東西?如何攔截網絡請求
我們通過使用「xmlhttprequest」重寫來解決了這個問題。
這是我們的content.js。我們注入content.js作爲啓動腳本
$(document).ready(function() {
var myScriptTag = document.createElement('script');
myScriptTag.src = safari.extension.baseURI + 'js/injectedToPage.js';
document.body.appendChild(myScriptTag);
});
注入的代碼是:(injectedToPage.js)
XMLHttpRequest.prototype.reallySend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function (body) {
console.log("--req.body:---");
console.log(body);
this.reallySend(body);
};
var req = new XMLHttpRequest();
req.open("GET", "any.html", true);
req.send(null);