我有一个包含jQuery-Tabs的网站,所以我的网址中有一个标签,可以显示所需的标签:
www.abc.de/site#tab4
在这个网站上我有一个如下所示的链接:
<a href="/site.html?option=1" name="optionslink" id="optionslink" onclick="javascript:test()">LINKTEXT</a>
通过此链接,用户可以选择产品选项。该网站在点击时重新加载。我希望在读取url中的hashtag后单击字符串,然后将此字符串添加到url或链接...
我的功能如下:
function test() {
var info=window.location.hash;
alert(info);
document.getElementById("optionslink").href+info;
return true;
}
到目前为止,该功能是点击我得到一个警告弹出窗口,显示正确的标签和它的字符串。但是,在没有添加hashtag +字符串的情况下重新加载网站。它看起来像这样:
www.abc.de/site.html?option=1
应该看起来像:
www.abc.de/site.html?option=1#tab4
我怎样才能使这个工作?
答案 0 :(得分:3)
您没有更改href属性。尝试
document.getElementById("optionslink").href += info;
您的代码document.getElementById("optionslink").href+info;
只是没有效果,因为只有连接,但没有对href属性的赋值。
答案 1 :(得分:2)
只需更改位置:
function test() {
var info=window.location.hash;
window.location = document.getElementById("optionslink").href + info;
return false;
}
<a href="/site.html?option=1" name="optionslink" id="optionslink" onclick="return test();">LINKTEXT</a>
另一方面,您将当前锚传递给函数,并保存DOM查询开销:
function test(anchor) {
var info=window.location.hash;
window.location = anchor.href + info;
return false;
}
<a href="/site.html?option=1" name="optionslink"
id="optionslink" onclick="return test(this);">LINKTEXT</a>
请注意,完全不使用inline scripts
是javascript事件的最佳做法。
您应该阅读addEventListener
,您可以在MDN