2

我有一个包含 jQuery-Tabs 的网站,所以我的 url 中有一个标签来显示所需的标签:

www.abc.de/site#tab4

在这个网站上,我有一个如下所示的链接:

<a href="/site.html?option=1" name="optionslink" id="optionslink" onclick="javascript:test()">LINKTEXT</a>

通过此链接,用户可以选择产品的选项。该网站在点击时重新加载。我想在读取 url 中的主题标签后单击字符串来实现这一点,然后这个字符串将被添加到 url 或链接中......

我的功能如下所示:

function test() {
var info=window.location.hash;
alert(info);
document.getElementById("optionslink").href+info;
return true;
}

到目前为止,单击该功能时,我会收到一个警报弹出窗口,其中显示了正确的主题标签及其字符串。但是网站在没有添加标签+字符串的情况下被重新加载。它看起来像这样:

www.abc.de/site.html?option=1

它应该看起来像:

www.abc.de/site.html?option=1#tab4

我怎样才能得到这个工作?

4

2 回答 2

3

您没有更改 href 属性。尝试

document.getElementById("optionslink").href += info;

您的代码document.getElementById("optionslink").href+info;没有任何效果,因为只有连接,但没有分配给 href 属性。

于 2012-05-24T08:54:03.097 回答
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 事件的最佳实践。

你应该读一下,你可以在MDNaddEventListener中读到它

于 2012-05-24T08:54:56.207 回答