简单模态不会关闭| IE8 Bug | window.location.href

时间:2013-11-15 23:04:39

标签: javascript jquery internet-explorer simplemodal

我之前发过约1个问题。得到了修复,但它提出了另一个问题......

以下代码......

在所有其他浏览器中单击“是”时页面将重新加载,而不会返回SimpleModal。

但在IE8中,它不断加载SimplModal,从而拒绝访问该网站......

先谢谢你们的帮助!

 <!-- Init Age Verification Content -->

<div class="age" id="verify"> 
    <div><img src="white.png"></img></div>
    <div id="noman">ARE YOU OVER 18?</div>
    <div> 
      <p> If not, leave now and we wont tell your mom.
        </br>  By continuing you agree you're 18 or older.
      </p>
    </div>
    <div id="YN">
      <a href="javascript:window.location.href=window.location.href" id="old">Yes</a>
        &nbsp;&nbsp;&nbsp;&nbsp;
      <a href="example.com" rel="nofollow" id="young">No</a>
    </div>
</div>

<!-- If previous page wasn't from us... Verify -->

  <script>
if ( document.referrer == null || document.referrer.indexOf(window.location.hostname) < 0 ) {
$("#verify").modal({opacity:85, position: ["20%",""], onOpen: function (dialog) {
    dialog.overlay.fadeIn('slow', function () {
        dialog.container.slideDown('slow', function () {
            dialog.data.fadeIn('slow');
            return false;
        });
    });
}});
}
</script>

1 个答案:

答案 0 :(得分:3)

如果用户没有通过链接navegate到页面,IE不会设置document.referrer

  

从MDN文档:“如果用户,该值为空字符串   直接导航到页面(不是通过链接,但是,例如,   通过书签)。由于此属性仅返回字符串,因此它会返回   没有给你DOM访问引用页面。

只需将链接的href更改为您网页的地址,或尝试此解决方法。

<a href="javascript:redirect(window.location.href);" id="old">Yes</a>

<script type="text/javascript" >            
function redirect(url) {
    if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
        var referLink = document.createElement('a');
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    } else {
        location.href = url;
    }
}
</script>