У меня странная проблема с моим Javascript в Firefox 3.0.x. В Firefox 3.0.12 страница постоянно перезагружается, как только загружается тело списка. Ни Firefox 3.5, ни Safari 4, ни Chrome 5 (все на Mac) не сталкиваются с этой проблемой.
РЕДАКТИРОВАТЬ : я создал отдельный пример, а не извлекаю его из моего существующего кода.
Проблема была связана с ошибкой, из-за которой страница перезагружалась при установке location.hash в пустую строку в FF 3.0.
test.js
function welcomeIndexOnLoad() {
$("#options a").live('click', function () {
optionClicked($(this), "get_list_body.html");
return false;
});
$(document).ready(function() {
optionClicked(null, "get_list_body.html");
});
}
function optionClicked(sender, URL) {
queryString = "";
if (sender != null) {
queryString = $(sender).attr("rel");
}
$("#list_body").load(URL + "?" + queryString, function(resp, status, AJAXReq) {
console.log(resp);
console.log("" + status);
location.hash = queryString;
});
}
test.html
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script type="text/javascript" src="test.js"></script>
<script>
welcomeIndexOnLoad();
</script>
</head>
<body>
<div id="container">
Outside of list body.
<div id="list_body">
</div>
</div>
</body>
</html>
get_list_body.html
<h3>
<div id="options">
<a href="#" rel="change_list">Change List</a>
</div>
<ul>
<li>li</li>
</ul>
jQuery строка 5252 (вызов xhr.send ()) появляется в консоли, как только страница перезагружается:
xhr.send( type === "POST" || type === "PUT" || type === "DELETE" ? s.data : null );