windows.location.href无法在Firefox3上运行

jul*_*o.g 19 javascript firefox

我们有一个名为"move"的JavaScript函数,它只执行"windows.location.href = 任何给定的锚 ".
此功能适用于IE,Opera和Safari,但在Firefox中会被忽略.对谷歌进行研究并不会产生令人满意的答案,为什么它不起作用.
是否有任何JavaScript专家知道这种行为,以及通过JavaScript跳转到锚点的最佳做法是什么?

Dan*_*ert 34

你尝试过使用过吗?

window.location = 'url';
Run Code Online (Sandbox Code Playgroud)

在某些浏览器中,它window.location.href是一个只读属性,并不是设置位置的最佳方式(即使技术上它应该允许你).如果您自己使用该location属性,则应在所有浏览器中为您重定向.

Mozilla的文档对如何使用该window.location对象进行了非常详细的说明.

https://developer.mozilla.org/en/DOM/window.location

  • 它是readonly,你不能改变它,但设置location.href是完全有效的,适用于所有浏览器(IE6中的角落场景除外) (4认同)

spr*_*ite 19

如果您尝试在后跟回调的事件之后调用此javascript代码,则必须在函数中添加另一行:

function JSNavSomewhere()
{
    window.location.href = myUrl;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

在页面的标记中,单击时调用此函数的控件必须返回此函数的值

<asp:button ........ onclick="return JSNavSomewhere();" />
Run Code Online (Sandbox Code Playgroud)

false返回值将取消回调,现在重定向将起作用.为什么这在IE中有效?好吧,我猜他们在回调优先重定向时优先考虑问题.

希望这可以帮助!


LCJ*_*LCJ 5

在这种情况下确保一个观察

以下将工作IE,但既不Chrome在内部Firefox(在我测试的版本中)

 window.location.href("http://stackoverflow.com");
Run Code Online (Sandbox Code Playgroud)

以下将全部三个工作

window.location.href = "http://stackoverflow.com";
Run Code Online (Sandbox Code Playgroud)