繁体   English   中英

window.location.replace 在 JavaScript 中不起作用

[英]window.location.replace not working in JavaScript

根据我的 JavaScript 代码,window.location 在收到真实响应后不起作用。 但是,我已经使用了可能的方法来使用它,但似乎有问题,或者我做错了。

这是我的代码:

  $(function() {
  var url = $(".url").val();
  // start sign up functionality
  $(".signupbtn").on('click', function() {
      $('html, body').animate({
          scrollTop: $(".toppage").offset().top - 100
      }, 'slow');
      $.post("<?php echo base_url();?>account/signup",
          $("#headersignupform").serialize(),
          function(response) {
              if ($.trim(response) == 'true') {
                  $(".resultsignup").html(response);
                  //THIS SECTION NOT WORKING
              } else {
                  $(".resultsignup").html(response);
                 // THIS SECTION WORKS
              }
          });
  });
  // end signup functionality
  })

在我上面提到的本节不工作中,我使用了以下所有行,但在真正响应后它不起作用:

  • window.location.replace(url);
  • window.location.href = '网址链接';
  • window.location(url);
  • window.location.href = 'url 链接'; 返回假;
  • window.location(url); 返回假;
  • window.location.replace(url); 返回假;
  • window.top.location = '[url]'
  • window.top.location = '[url]'; 返回假;
  • location.assign("url");
  • 位置=“网址”;
  • location.reload(true);

但在本节 WORKS 中,所有上面和下面的代码都有效。 我的意思是在 else 之后意味着响应是错误的。 ((我不需要在错误响应中使用它,但它有效!!))

仅供参考,响应 False 和 True 两者都运行良好。

为什么我需要这个? 因为在真正响应后我需要重置表单字段,对于这个问题,我还使用了以下几行,但再次不起作用:

  • $('#headersignupform')[0].reset();

  • document.getElementById("headersignupform").reset();

  • $('form[name="headersignupform"]')[0].reset();

  • $("#headersignupform").get(0).reset();

解决方案

我通过将响应作为 HTML 添加到 JavaScript 而不是通过从 Ajax 发布的 HTML 解决了这个问题。

window.location 工作,如果你使用代码例如:

location.assign("http://www.mozilla.org"); // or
location = "http://www.mozilla.org";

你可以看看: https : //developer.mozilla.org/en-US/docs/Web/API/Window/location

window.top.location = '[your URL]'就是你想要的。

下面的代码像魔术一样工作

window.history.pushState("", "", "new url"); window.location.reload();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM