调用对象IE无效

ybu*_*ser 7 javascript internet-explorer

在FF和Chrome中,我可以使用bind 将此值设置为location对象,具有以下代码

locationFacade ={
reload: location.reload.bind(location)
} 
locationFacade.reload();
Run Code Online (Sandbox Code Playgroud)

或者我可以使用申请

locationFacade ={   
    reload: function(){
        location.reload.apply(location,arguments);  }
}
locationFacade.reload();
Run Code Online (Sandbox Code Playgroud)

但是在IE 9中,我在调用locationFacade.reload()时不断收到"无效的调用对象" .我没有测试过每个IE,但问题也发生在IE 11中.在这里这里 IE都支持Apply和bind

kol*_*kol 3

这个问题看来是IE的一个bug。我在IE11中测试了很多函数(document.writeln、window.alert等),除了location. 此解决方法可能会有所帮助:

locationFacade = {
    reload: window.navigate ?
            window.navigate.bind(window, location.href) :
            location.reload.bind(location)
}
Run Code Online (Sandbox Code Playgroud)