【问题标题】:Javascript window.location does not workJavascript window.location 不起作用
【发布时间】:2016-12-16 15:18:09
【问题描述】:

我无法理解这段代码的问题。 Window.location 以前对我很有效,但这次不行,我也不知道。当我手动访问此方向时 - 它可以工作,但重定向不起作用 - 只是刷新页面。我不知道该怎么办!

我已尝试将其重定向到 google 或其他任何地方,但它仍然只是刷新。

$("#remove-form").on("submit", function(event) {
    usunRow();
});

function remove() {
    var id=document.getElementById("id").innerHTML;
    if (id != "ID"){
        $('#remove-modal').modal('show');
    } else $('#error-modal').modal('show');
}

function usunRow(){
    var id=document.getElementById("id").innerHTML;
    if (id != "ID"){
        window.location.href = "usun.php?id="+id;
        alert("usun.php?id="+id);
    } else $('#error-modal').modal('show');
}

这是我为此使用的所有功能

【问题讨论】:

  • 你在哪里调用这个usunRow()函数?同时提供该区号。
  • 你的警报 (usun.php?id="+id) .. 来了吗?
  • @adi 警报即将到来
  • 请检查控制台窗口是否出现错误

标签: javascript


【解决方案1】:

您可以尝试使用:

window.location.href = "";

【讨论】:

  • 拒绝回答的请告诉我原因?
  • 因为 window.location.href 不是函数
  • 请正确阅读问题。问题出在 window.location
  • 什么?您的代码调用了 window.location.href("")href 不是函数,因此您的代码将无法正常工作。
【解决方案2】:

更改 window.locationwindow.location.href 这会将窗口位置更改为新位置。

  1. 确保你的usunRow()函数调用完美并且没有 浏览器控制台中的问题。
  2. 另外确保您的if 语句执行,可能是您的if 语句未执行,这将是您的页面的原因 只是刷新而不改变它的位置。

更新

添加return false,因为提交表单将刷新您的页面return false 将保持页面静态,而您的window.location.href 将重定向您的页面。

$("#remove-form").on("submit", function(event) {
            usunRow();
            return false;
});

希望这能解决您的问题。

【讨论】:

  • 确保if 执行,您是否收到显示新网址的警报?
  • 将您的usun.php?id=+id 更改为https://www.google.com 以确保unsun.php 没有任何问题,仅用于检查目的
【解决方案3】:

如何调用 usunRow() 函数? 也许您在锚点上有点击事件而没有阻止它。这就是您的页面被刷新的原因。您需要在 click 事件中使用 preventDefault()。

【讨论】:

  • 我敢打赌,usunRow() 是由链接或按钮上的事件侦听器触发的,并且某处缺少 preventDefault 调用。这将导致刷新。
【解决方案4】:

如果您打开控制台并输入window.location,您就会明白为什么它不起作用。它是一个包含有关当前位置的许多信息的对象:

Location {hash: "", search: "", pathname: "/questions/38870016/javascript-window-location-does-not-work", port: "", hostname: "stackoverflow.com"…}ancestorOrigins: DOMStringListassign: ()hash: ""host: "stackoverflow.com"hostname: "stackoverflow.com"href: "http://stackoverflow.com/questions/38870016/javascript-window-location-does-not-work"origin: "http://stackoverflow.com"pathname: "/questions/38870016/javascript-window-location-does-not-work"port: ""protocol: "http:"reload: reload()replace: ()search: ""toString: toString()valueOf: valueOf()__proto__: Location

因此,您尝试将此对象替换为字符串(您的目标网址)。已经提到的这个位置对象的属性href 是您需要的:window.location.href = "new url" 或简短版本location.href = "new url"

【讨论】:

  • > 虽然 Window.location 是一个只读的 Location 对象,你也可以给它分配一个 DOMString。这意味着在大多数情况下,您可以像使用字符串一样使用位置:location = 'http://www.example.com'location.href = 'http://www.example.com' 的同义词。
【解决方案5】:

使用这个:

window.location.href = "..."

没有很好的文档记录,但 window.location 实际上是一个具有非标准行为的对象,例如重新加载页面和一些不可读或未记录/古怪/浏览器特定的字段。

【讨论】:

    猜你喜欢
    • 2017-09-20
    • 1970-01-01
    • 2019-02-03
    • 2015-04-14
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多