我有页面中有一些数据在选项卡中,我试图编写一个函数,以便当从另一个页面单击链接时可以加载带有选项卡的页面并显示正确的选项卡。这是使用下面的代码,减去实际更改选项卡功能。但由于某些原因使用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();
};
}
答案 0 :(得分:0)
URL的#
部分传统上用于锚点。你看到的“跳跃”是原始特征。
现代网站和网络应用程序使用它构建历史记录HTML5's history feature isn't widely supported yet。
为了避免跳跃,请在链接中添加event.preventDefault
,例如:
<a href="#tab1" id="tab1handle">Tab1</a>
<script type="text/javascript">
document.getElementById("tab1handle").onclick = function (event) {
event.preventDefault();
}
</script>
您还可以确保未定义锚点。在这种情况下,浏览器将跳转到页面顶部。这取决于你是否不受欢迎。
答案 1 :(得分:0)
哈希字符用于锚点。
使用问号代替哈希。
<a href="index.html?tabname">
和
var linkToTab = window.location.search.substr(1);
var linkClass = '.'+linkToTab
if(window.location.search != '') {