为什么这个javascript代码无法在IE 11上运行?

时间:2015-07-19 04:50:04

标签: javascript dom document internet-explorer-11 addeventlistener

document.addEventListener("DOMContentLoaded", setTimeout(function(){
    window.location.assign("http://www.google.com")
}, 3600000));

我怀疑IE或IE 11有什么东西,我需要知道,因为它适用于MF,GC和Safari。

我以为我读过这个应该适用于IE 9及更高版本的地方!

如果人们想知道,我正试图找到一种简单的方法来将人们从网站重定向,如果他们已经闲置太长时间了。

3 个答案:

答案 0 :(得分:1)

尝试:

ViewDidLoad

addEventListener的第二个arg应该是一个函数。

答案 1 :(得分:0)

我认为问题在于你传递setTimeout addEventListeneraddEventListener的功能不是setTimeout因此,解决方案是在函数中对其进行扭曲。

在一个函数中忙碌:

document.addEventListener("DOMContentLoaded", function(){
  setTimeout(function(){ 
    window.location.assign("http://www.google.com") }, 3600000);
  }
);

IE 9及以上版本支持addEventListener,但IE 8及以下版本支持attachEvent 。所以上面的代码应该在你的IE 11中运行得很好。但只是为了完整性:

document.attachEvent("DOMContentLoaded", function(){
  setTimeout(function(){ 
    window.location.assign("http://www.google.com") }, 3600000);
  }
);

另外,因为你的代码无论如何都不操纵DOM,你可以这样做:

setTimeout(function(){ 
    window.location.assign("http://www.google.com") }, 3600000);

答案 2 :(得分:-1)

IE支持attachEvent而不是addEventListener

试试这个

var lotusFirstPosition=$('.lotus').offset().top;
var currentPosition;
var fadingDuration=400; // the duration it will take to fade the element
var OPI=1/fadingDuration; // Opacity Per Inch
$(document).scroll(function(){
    if($('.lotus').offset().top<=$(document).scrollTop()){
        currentPosition=$(document).scrollTop();
        $('.lotus').css('top',$(document).scrollTop()+'px');
    }
    else if(currentPosition>=lotusFirstPosition){
        currentPosition=$(document).scrollTop();
        $('.lotus').css('top',$(document).scrollTop()+'px');
    }
    else{
        $('.lotus').css('top',lotusFirstPosition+'px');
    }
    $('.lotus').css('opacity',1-((currentPosition-lotusFirstPosition)*OPI));
});
相关问题