我想一种方法是在页面加载时将 clickevent-listener 附加到所有锚元素,而不是更改每个链接的 onclick 属性或使用 onbeforeunload 事件。然后回调可以拦截浏览器的默认行为以跟随链接。然后,您可以获得src
刚刚单击的 a 元素的属性,将所需的首选项添加到 URL,然后通过设置window.location.href
正确的 URL 将用户发送到正确的位置(包括首选项)。
MDN 上有一篇关于事件监听器的精彩文章,我相信它会对您有所帮助。特别注意关于旧版本 IE 的部分
一个非常粗略的例子:
function callback(e){
// Get the src of the clicked a-element
var src = this.src;
// Add preferences to the url, this need
// improvement depending on your needs
src += "?somesetting=foo";
// Send user to the url with preferences
window.location.href = src;
}
// Get all anchors on page
var anchors = document.getElementsByTagName("a");
// Loop over the elements and attach listener
for(i=0 ; i < anchors.length ; i++){
// Extend with support for older IE if needed
anchors[i].addEventListener("click", callback, false});
}