上我正在寫一個腳本,應該重寫網頁上的所有鏈接從http://到https:// - 它必須做的客戶端,它運行在一個頁面我不控制。改寫用JavaScript鏈接動態頁面
執行環境:只有新版Chrome,因爲這是一款Chrome擴展的注入腳本,所以沒有跨瀏覽器的後顧之憂。注入發生在document_start
(即在DOM開始加載之前)。
我的第一次嘗試是監視DOMContentLoaded
,然後遍歷document.links:
document.addEventListener("DOMContentLoaded", rewriteHTTPS, false);
function rewriteHTTPS() {
var links = document.links;
for(var i in links){
links[i].href = links[i].href.replace(/http:/, "https:");
}
}
不幸的是,我意識到,頁面是動態的,所以更多的鏈接後,該事件被觸發加。
所以,問題是:什麼是捕捉動態DOM頁面中的所有新的和修改鏈接的最佳方式?
有沒有*真的*很好的理由,爲什麼這不是在服務器端完成?如果你的用戶只是關閉Javascript會怎麼樣? –
我正在編寫瀏覽器擴展程序以與外國網站進行交互。很明顯,如果我的用戶使用它,他們已經啓用了javascript。 – Xan
啊,有道理:) –