如果我使用window.location = "";
重定向用户,那么任何浏览器都会向用户发出警告消息(因为页面未经用户同意而重定向)吗?
我应该使用window.location = ""
还是window.location.href = ""
?
答案 0 :(得分:2)
不,您可以自行重定向窗口位置。您不能自动执行的唯一类似相关的操作是单击具有事件的用户的链接。
你可能会想到这种类型的通知:
window.onbeforeunload = function() {
return "Are you sure you want to navigate away?";
}
答案 1 :(得分:1)
AFAIK window.location和window.location.href 应该非常等效。
自从我使用它已经有一段时间了,但我不记得在离开页面之前看到过提示。大部分时间我被提示是因为我明确地提出了确认信息,例如点击链接删除内容时。
答案 2 :(得分:1)
设置window.location不应该导致重定向问题。但是,如果存在哈希值,那么某些浏览器可能会以不同的方式处理它。
来自MDN规范:
注意:上面的示例适用于不需要保留window.location.hash的情况。但是,在基于Gecko的浏览器中,以这种方式设置window.location.pathname将清除window.location.hash中的任何信息,而在WebKit(可能还有其他浏览器)中,设置路径名不会改变哈希值。如果您需要更改路径名但保持哈希原样,请改用replace()方法,该方法应该在浏览器中保持一致。
location
和location.href
之间应该没有任何区别,因为无论何时修改位置对象的属性,都会使用URL加载文档,就像window.location.assign()一样。已使用修改后的网址调用。
答案 3 :(得分:1)
没有。您不会收到任何警告(就像关闭窗口一样)。我从来没有看到位置和location.href有任何区别,但我使用的是最后一个:)