我正在编写一个脚本,应该重写页面上从http://到https:// 的所有链接 - 它必须在客户端完成,它在我无法控制的页面中运行。
执行环境:仅限最近的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捕获页面中所有新链接和修改链接的最佳方法是什么?