0

我正在寻找以下问题的任何创造性(和简单)解决方案 -

这个东西只适用于onload,而不适用于onclick:

<!--[if lt IE 9]> 
   <script type="text/javascript">
   if (window.location.hash == '#aciw') {
       window.location.replace("#checkout-counter-aciw");
   }
   </script>
<![endif]-->

因此,如果用户访问 www.site.com,并单击将#aciw 插入浏览器的链接,则不会发生任何事情。另一方面,如果他在浏览器中使用 www.site.com/#aciw 刷新,哈希将更改为 www.site.com/#checkout-counter-aciw,一切正常。

当然,我不希望它只在加载时工作,我希望它在点击时特别有效,因为我有几个链接需要将 IE8 发送到完全不同的位置。

我一直在玩添加这个:

window.location.hash = "#" + checkout-counter-aciw;

和这个:

window.location.reload(true);

但到目前为止,它只是暂时将他们带到#checkout-counter-aciw,然后它会重新回到网站顶部。

4

2 回答 2

1

hashchange事件。当它改变时它会告诉你。

$(window).on("hashchange", function() {
    var hash = window.location.hash.substr(1);
});
于 2013-01-20T23:39:26.817 回答
0

我最终这样做了,它有效:

<!--[if lt IE 9]> 
<script type="text/javascript">

if (window.location.hash == '#aciw') {
    window.location.replace("http://www.site.com/#checkout-counter-aciw");
}

$(document).ready(function(){
        $('a.aciw').click(function(){  
           window.location.replace("http://www.site.com/#checkout-counter-aciw");
        });
});

</script>
<![endif]-->

对于我自己的个人笔记:因此,如果初始请求的页面已经包含 #aciw 哈希,则第一部分(“if”)有效,如果他们首先到达 www.site.com(没有#aciw 哈希)然后单击 .aciw 链接。

于 2013-01-20T23:59:22.627 回答