Javascript 将参数从<;添加到URL;a href>;刚刚点击
这个场景是大量的html文件,它们之间有更多的链接。当我调用它们中的第一个(它将是索引)时,链接通过URL传递几个参数(我们可以称它们为首选项) 现在我想要的是,当点击页面的任何链接时,这些参数都会被添加。因此,问题与另一个()类似,只是在单击链接之后才执行 我知道一个解决方案可能是更改每个链接上的onclick事件,但由于可能有数千个,没有常规的url格式。。。我正在寻找一个解决方案,可以在脚本的头部;可能是与onbeforeunload事件相关的内容Javascript 将参数从<;添加到URL;a href>;刚刚点击,javascript,Javascript,这个场景是大量的html文件,它们之间有更多的链接。当我调用它们中的第一个(它将是索引)时,链接通过URL传递几个参数(我们可以称它们为首选项) 现在我想要的是,当点击页面的任何链接时,这些参数都会被添加。因此,问题与另一个()类似,只是在单击链接之后才执行 我知道一个解决方案可能是更改每个链接上的onclick事件,但由于可能有数千个,没有常规的url格式。。。我正在寻找一个解决方案,可以在脚本的头部;可能是与onbeforeunload事件相关的内容 无论如何,我找不到怎么做。有什么想法吗?
无论如何,我找不到怎么做。有什么想法吗?我想一种方法是在页面加载时将clickevent侦听器附加到所有锚元素,而不是更改每个链接的onclick属性,或者使用onbeforeunload事件。然后,回调可以截获浏览器的默认行为以跟踪链接。然后,您可以获取刚刚单击的a元素的
src
属性,将所需的首选项添加到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});
}
函数回调(e){
//获取单击的a元素的src
var src=this.src;
//将首选项添加到url,这需要
//根据您的需要进行改进
src+=“?somesetting=foo”;
//将用户发送到带有首选项的url
window.location.href=src;
}
//获取页面上的所有锚
var archors=document.getElementsByTagName(“a”);
//在元素上循环并附加侦听器
对于(i=0;i<0.length;i++){
//如果需要,扩展对旧IE的支持
锚[i].addEventListener(“单击”,回调,false});
}
这将在单击任何包含href属性的内容时附加一个字符串:
window.addEventListener("click", function(e) {
var href = e.target.getAttribute("href");
if(href) {
location.href = href + "?q=stackoverflow";
e.preventDefault();
}
});
示例如下:
在