我们有一个名为“move”的 JavaScript 函数,它只执行“windows.location.href =任何给定的锚点”。
此功能适用于 IE、Opera 和 Safari,但不知何故在 Firefox 中被忽略。在 Google 上进行研究并没有得出令人满意的答案,为什么它不起作用。
有没有 JavaScript 大师知道这种行为,通过 JavaScript 跳转到锚点的最佳实践是什么?
windows.location.href 不适用于 Firefox3
IT技术
javascript
firefox
2021-03-09 03:43:47
6个回答
你有没有试过只使用
window.location = 'url';
在某些浏览器中,window.location.href
它是只读属性,并不是设置位置的最佳方式(尽管从技术上讲它应该允许您这样做)。如果您单独使用该location
属性,则应在所有浏览器中为您重定向。
Mozilla 的文档对如何使用该window.location
对象有非常详细的解释。
如果您尝试在回调后的事件之后调用此 javascript 代码,则必须向函数中添加另一行:
function JSNavSomewhere()
{
window.location.href = myUrl;
return false;
}
在页面的标记中,单击时调用此函数的控件必须返回此函数的值
<asp:button ........ onclick="return JSNavSomewhere();" />
false 返回值将取消回调,重定向现在将起作用。为什么这在 IE 中有效?好吧,我猜当他们将重定向优先于回调时,他们对这个问题的看法有所不同。
希望这可以帮助!
在这种情况下确保的一项观察
以下将适用于IE
,但既不适用Chrome
也不适用Firefox
(我测试的版本)
window.location.href("http://stackoverflow.com");
以下将适用于所有三个
window.location.href = "http://stackoverflow.com";
也许这只是您帖子中的一个错字而不是您的代码,但它是window而不是window s
我不确定是否会跟随您。
我刚刚尝试过:使用 FF3 到Lua 5.1 参考手册(很长而且有很多锚点)。
粘贴javascript:window.location.href="#2.5"; alert(window.location.href);
在地址栏中,我转到了正确的锚点,它显示了正确的 URL。当然,也适用于完整的 URL。
替代代码:javascript:(function () { window.location.href="#2.5"; })();
也许你忘记了#。常见问题,还有图像映射。