【问题标题】:Javascript location.href crash on Explorer 11Explorer 11 上的 Javascript location.href 崩溃
【发布时间】:2025-12-22 07:50:10
【问题描述】:

今天,我在 IE11 中注意到了这个问题。

一个简单的 JavaScript 重定向(通过 location.href = 'newhost...'; 进行)会导致浏览器崩溃。

有人知道如何解决这个问题吗?

如果使用此方法在 wordpress 上使用 ContactForm7 有助于解决此问题:http://contactform7.com/redirecting-to-another-url-after-submissions/

【问题讨论】:

  • 请在您的帖子中提供一个完整的可复制示例,链接后面的页面来来去去......

标签: javascript wordpress redirect internet-explorer-11 contact-form-7


【解决方案1】:

Internet Explorer 并不总是与 JavaScript 中的 location.hrefwindow.location.href 配合得很好。也就是说,href 函数更是如此......

尝试使用:

window.location.assign("newhost.."); // or
window.location = "newhost..";


window.location:
如更详细的描述here

Window.location 只读属性返回一个 Location 对象,包含有关当前位置的信息 文件。

虽然Window.location 是一个只读的Location对象,你也可以 为它分配一个DOMString。这意味着您可以使用 document.location 在大多数情况下就好像它是一个字符串: window.location = 'http://www.example.com' 是的同义词 window.location.href = 'http://www.example.com'.

【讨论】:

    【解决方案2】:

    这里的 WordPress 论坛帖子中有解决此问题的方法:https://wordpress.org/support/topic/redirection-crashes-ie-11-perfect-for-all-others

    KookRoss 说:

    我找到了一个解决方案,它是一个丑陋的解决方案,但它确实绕过了 给我的问题。

    on_sent_ok:
    "$("#post-440").empty();window.location.replace('https://www.url.com.au/thank-you/');"
    

    post-440 是表单周围的 div 的 ID。放 只是你的帖子让我相信 IE 以某种方式通过了 在进行重定向之前再次表单,这使用 jQuery 来清除 在执行之前的整个内容页面(包括表单) 重定向。

    这是一种解决 IE 问题的黑客方法,但到目前为止它的工作 适合我的所有浏览器,包括 IE11。

    【讨论】:

      【解决方案3】:

      如果从事件重定向时即使在 IE 11 中使用 Assign 仍然出现此错误,您可以使用:

      setTimeout(function ()
      {
         window.location.assign("newhost...");
      }, 100);
      

      解决问题

      【讨论】: