0

我的页面在标签中有一些数据,我正在尝试编写一个函数,以便当从另一个页面单击链接时可以加载带有标签的页面并显示正确的标签。这与下面的代码一起使用,减去实际的更改选项卡功能。但由于某种原因,使用 window.location..... 作为变量仍将页面向下滚动到匹配的 id。是否有另一种方法可以在 # 之后获取 url 中的字符串。或者我可以这样做但不必跳转到 id?谢谢

function loadTab(){

var linkToTab = window.location.hash.substr(1);
var linkClass = '.'+linkToTab

if(window.location.hash != '') {

        changeTabs(linkClass);
    }else{
        $('.companyLink:first').addClass('active');
        $('.companyBio:first').addClass('active');
        $('.companyBio:first').fadeIn();

    };

}
4

2 回答 2

0

URL的#一部分传统上用于锚点。您看到的“跳跃”是原始特征。

现代网站和网络应用程序使用它来构建历史,因为HTML5 的历史功能尚未得到广泛支持

为了避免跳跃添加event.preventDefault到您的链接,例如:

<a href="#tab1" id="tab1handle">Tab1</a>

<script type="text/javascript">
  document.getElementById("tab1handle").onclick = function (event) {
    event.preventDefault();
  }
</script>

您还可以确保未定义锚点。在这种情况下,浏览器将跳转到页面顶部。这是否不受欢迎取决于您。

于 2013-10-10T11:43:15.750 回答
0

哈希字符用于锚点。

使用问号而不是哈希。

<a href="index.html?tabname">

var linkToTab = window.location.search.substr(1);
var linkClass = '.'+linkToTab

if(window.location.search != '') {
于 2013-10-10T12:00:31.220 回答