我已阅读其他问题
jQuery $(document).ready() not firing after window.location.href
jQuery $(document).ready() not firing
Why is $(document).ready not firing for me?
但是没有一个解决方案似乎有用......
我的问题是jQuery $(document).ready()在Firefox中没有触发,但在重定向后在其他浏览器中触发。我知道js被加载,因为它有一个时间变量附加到结尾以防止缓存。
我尝试使用$(window).load()来获得相同的结果。 Firebug没有显示错误并且正在显示正在加载的脚本,但是ready()函数上的断点永远不会触发。
Firefox中是否存在可能导致问题的某种安全限制,如果是这样,我将如何解决这些问题?
答案 0 :(得分:0)
使用后退/前锋时我遇到了同样的问题。如果你没有后退/前锋这个问题,那可能是一个错字。但这可能是Firefox的奇怪行为。
这是一个简单的例子,对我来说不适用于后退按钮(即没有事件触发,不涉及重定向):
<!DOCTYPE html>
<html>
<head>
<title>Simplest JQuery</title>
<script type="text/javascript" src="jquery-1.6.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
alert("document.ready");
});
</script>
</head>
<body>
<div>
Firefox will not fire document ready on back/forward navigation. Except when it
does.<br />
<a href="navigate-nowhere.html">Go!</a>
</div>
</body>
</html>
Firefox肯定会显示一些错误,因为我在不同的计算机上使用相同的代码获得不同的行为。使用最新的FF5,它无法在Windows 7或Leopard上运行。我在Snow Leopard上有另一台机器,它的工作原理就像在锡上所说的那样。
问题不在于JQuery - 即使删除它并使用addEventListener也没有效果。使用内联事件(即通过body标签中的onload)无效。记录here的“空卸载”技巧也不起作用。
扩展也不是问题 - 我试过全力以赴。我在Leopard机器上尝试了一个干净的安装,没有任何改变。
有趣的是,焦点/ onfocus事件确实有效 - 除非链接仍然在页面中突出显示。在这种情况下,window.onblur事件会在之后触发,但仅在使用tab更改焦点时才会触发。
答案 1 :(得分:0)
在找到更好的替代方案之前,<body onUnload="">
在FF5中适合我。我认为你的问题可能会超出这个问题吗?