使用document.write后,setInterval在IE,Edge中不起作用

时间:2019-07-16 21:23:28

标签: internet-explorer setinterval microsoft-edge document.write

我使用ajax调用加载整个页面html,并使用document.write显示它,然后进行一些修改。我需要使用document.write以正确的顺序加载元素,就像通过访问页面加载它一样。一切正常,除了IE和Edge上的setInterval不起作用。

我的代码:

var my_module = {  
  loadPage: function(){                                                        
      var url = window.location.origin;    
      $.ajax({                                   
         type: "GET",                           
         url: url                                     
       }).done(function(data) {
            document.write(data);                
            document.close();
            my_module.example()  
      });                                       
  },  
  example: function(){
    alert(1) //this works fine
    var waitForElement = setInterval(function(){
      alert(5) //this won't work in IE or edge
    },2000) 
  },                                            

}      
my_module.loadPage();

在其他浏览器中,我收到警报,但在IE和Edge中却没有。原因是什么,有什么解决办法吗?

1 个答案:

答案 0 :(得分:0)

我认为这可能是由于在不同的浏览器中执行document.write()的方式不同。您可以检查this documentation。另请检查this thread以获取更多信息。如果要在页面中加载某些元素,可以使用appendChild()作为解决方法。