Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态链接生成和纯javascript_Javascript - Fatal编程技术网

动态链接生成和纯javascript

动态链接生成和纯javascript,javascript,Javascript,我有这样一个链接: <a href="http://www.example.com/">test</a> 如何使点击链接转到http://www.example.com/“+这是使用纯javascript编写的 (因此,单击会生成一个动态url,其末尾有变量t)您可以为您的锚提供一个id: <a href="http://www.example.com/" id="mylink">test</a> 显然,如果将此脚本放在部分,则可能需要等待DO

我有这样一个链接:

<a href="http://www.example.com/">test</a>
如何使点击链接转到
http://www.example.com/“+这是使用纯javascript编写的


(因此,单击会生成一个动态url,其末尾有变量t)

您可以为您的锚提供一个id:

<a href="http://www.example.com/" id="mylink">test</a>
显然,如果将此脚本放在
部分,则可能需要等待DOM准备就绪,然后再尝试附加单击处理程序:

window.onload = function() {
    document.getElementById('mylink').onclick = function() {
        window.location.href = this.href + t;
        return false;
    };
};

如果您无法修改DOM以向锚点提供唯一id,则可以使用该方法,该方法将返回一个包含DOM中给定标记的所有元素的数组,然后您必须循环遍历这些元素并将
onclick
处理程序附加到锚点。为了在您可能拥有的所有链接之间识别它,您必须使用其innerHTML文本或当前的href属性。

基于Darin solition,这将打开一个新窗口,并且不会修改原始内容

window.onload = function() {
    document.getElementById('mylink').onclick = function() {
        window.open(this.href + t);
        return false;
    };
};

我删除了jQuery标记,因为您似乎想要一个不涉及任何库的解决方案。如果你想使用jQuery,只需将其回滚,尽管你也会发现jQuery也存在这样的问题。Hei Darin,这没关系,但每次我单击链接时,它都会将t添加到链接中…因此,如果我单击两次,它就会恢复正常?@David19801,通常当你单击链接时,你会被重定向到另一个页面,那么,你怎么能在这个链接上点击两次呢?点击,返回,再次点击……但我真的希望它能用鼠标中键在新窗口中打开链接……有什么想法吗?@David19801,我已经用另一种方法更新了我的代码,包括取消默认操作并使用window.location.href执行重定向。这样您就不会修改实际DOM元素的href属性。这比这个要好。href=This.href+t,但是有没有办法让它使用鼠标中键工作,这样它就可以加载到新页面中,而不会永久重写href?我一直在阅读javascript的语法,我认为到目前为止这是不可能的…好吧,我用open()完成了!!!
window.onload = function() {
    document.getElementById('mylink').onclick = function() {
        window.location.href = this.href + t;
        return false;
    };
};
window.onload = function() {
    document.getElementById('mylink').onclick = function() {
        window.open(this.href + t);
        return false;
    };
};