当前位置: 首页 > 面试题库 >

IE与window.location.href不兼容

澹台啸
2023-03-14
问题内容

我正在使用来自AJAX发布请求的回调来导航到新页面,但是在Internet Explorer上不起作用。我的代码如下:

$.ajax({ 
    type: "POST",
    url: phpUrl,  
    data: data,  
    async: false, 
    success: function() {       
         if (navigator.appName == 'Microsoft Internet Explorer'){   window.location.href("/step2.php")}
         else{ window.location.href = "/step2.php"}             
    },  
    dataType:'json'

});

这在FF / Safari /
Chrome上正常运行,但是当我在IE上对其进行测试时,它不起作用。是否有更好的方法重定向到新页面?我正在使用,async:false因为如果我不使用回调,则数据不会加载到Chrome
/ Safari上,因为在POST请求完成之前页面只会更改。


问题答案:

是括号。 href不是一个函数,因此尝试调用它window.location.href("/step2.php")是一个TypeError

href像下一行一样分配给您,或者更好地使用location.assign()

location.assign('/step2.php');

虽然您可以直接分配给location的属性(location.href='...';)来促使浏览器导航,但我建议您不要这样做。

在内部,location.assign()无论如何都只是调用,并且分配给属性并不总是在所有浏览器中都具有相同的行为。

至于,async:false 从来没有 做到这一点。如果您发出同步XHR请求,
那么您做错了

报告的IE9挂起的8.4%是由于同步XHR阻止了浏览器。

鉴于您已在回调函数中添加了该对象location,因此在POST完成之前不会进行分配,因此我不确定“在POST完成之前页面会更改”的含义。(您是否忘记取消表格的submit?)



 类似资料:
  • 问题内容: 其实这句话是什么意思? 一些示例用于分隔IE的版本,而某些示例则用于; 哪个是对的? 该命令具有一定的重要性,我希望知道这一点。 编辑 :我正在使用 问题答案: 如果您支持IE(对于Internet Explorer 8及更高版本),请执行以下操作: 强制浏览器呈现为该特定版本的标准。IE7及更低版本不支持此功能。 如果用分号分隔,它将设置不同版本的兼容性级别。例如: 将IE7和IE8

  • 问题内容: 检索具有特定类的元素数组的最佳方法是什么? 我会使用document.getElementsByClassName,但IE不支持它。 …但是IE仍然说: 对象不支持此属性或方法 有什么想法,更好的方法,错误修复? 我不希望使用任何涉及jQuery或其他“笨拙的javascript”的解决方案。 我知道了! 正如@joe提到的,该函数不是的方法。 因此,工作代码如下所示: …此外, 如果

  • 对于响应式布局,有一点需要注意,就是IE8 及以下的版本不支持媒体查询,这意味着它们只会呈现媒体查询以外的样式,即基准样式。并且,它们也不支持HTML5 的 header、main、aside、footer 等新元素。 对于IE8及更早的版本,可以什么都不做,让网站显示最基本的版本,或者为它们单独创建一个样式表,让它们显示网站最宽的版本。 当然,大多数人还是倾向于让页面具有响应式的效果。这也好办,

  • 本文向大家介绍placeholder如何在兼容IE?相关面试题,主要包含被问及placeholder如何在兼容IE?时的应答技巧和注意事项,需要的朋友参考一下 $(function(){ // 兼容IE9下的placeholder function placeholderSupport() { return 'placeholder' in document.createElement('inpu

  • 我有一个关于JavaAPI中Akka 2.0.1的问题。我有以下情况: 参与者A:从UI接收请求。然后它将执行以下操作。 等待来自UI的消息 发送msg到Actor B,以检索数据 成为一个演员,当从演员B那里得到答案时,处理它。 演员B: 等待演员A的消息 检索数据 调用; 这不起作用,演员甲也不会得到答案。然而,如果Actor B在系统中使用全局actorRef到Actor A,在我的情况下z

  • 概览 本章描述了IE在处理自定义的HTML属性和标签时的一些独特之处。如果你要让你的AngularJS应用兼容IE8和IE8以下的版本的话,你需要仔阅读本章。 简易版 要让你的AngularJS应用在IE中正常运行你必须: 确保JSON字符串能被正常解析(IE7需要),你可以使用JSON2或者JSON3来实现。 你不能使用自定义的元素标签,如<ng:view>(你只能使用属性的形式,如<div n