window.location.hash无法在Chrome / Safari中使用

时间:2010-08-14 10:18:12

标签: javascript jquery webkit

我的网站上有以下代码,它基本上会检查URL中是否有哈希,如果有,则会触发选项卡上的单击。除了Chrome / Safari之外,这种方式还可以 - 我有什么想法可以解决这个问题吗?

jQuery(document).ready(function() {
    if(window.location.hash){ 
        $("a#viewapart").trigger('click');
    }
});

如果我替换alert('hello'),它就不起作用;所以它只是因为某些原因而无法识别(window.location.hash)。

谢谢!

4 个答案:

答案 0 :(得分:1)

您可能在初始化轮播脚本并绑定所有点击之前执行它。

$(document).ready(function() {
    if (window.location.hash){ 
        $("a#viewapart").trigger('click');
    }
    $("#slider").jcarousel();
});

在初始化轮播脚本后,您需要执行

$(document).ready(function() {
    $("#slider").jcarousel();
    if (window.location.hash){ 
        $("a#viewapart").trigger('click');
    }
});

答案 1 :(得分:0)

试试这样:

if (window.location.hash != null && window.location.hash.length > 0) {
    $('a#viewapart').trigger('click');
}

答案 2 :(得分:0)

应该有效,除非您动态设置哈希。

jQuery(document).ready(function() {
    var t = window.location;
    var hash = t.hash || ((t = t.href.match(/#([^?]*)/)) && t[1]);
    if(hash){ 
        $("a#viewapart").trigger('click');
    }
});

答案 3 :(得分:0)

如果您尝试在SCRIPT代码之前添加</BODY>代码?

  ...
  <script>
    if(window.location.hash){ 
      $("a#viewapart").trigger('click');
    }
  </script>
</body>