上我正在写一个脚本,应该重写网页上的所有链接从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
啊,有道理:) –