我正在寻找以下问题的任何创意(和简单)解决方案 -
这个东西只适用于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,一切都很顺利。
当然,我不希望这只能用于onload,我希望它特别适用于onclick,因为我有几个需要将IE8发送到完全不同的位置的链接。
我一直在玩这个:
window.location.hash = "#" + checkout-counter-aciw;
和此:
window.location.reload(true);
但到目前为止,它只是暂时将它们带到#checkout-counter-aciw然后它重新回到网站的顶部。
答案 0 :(得分:1)
收听hashchange
事件。它会在它发生变化时告诉你。
$(window).on("hashchange", function() {
var hash = window.location.hash.substr(1);
});
答案 1 :(得分: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链接。