以下の解決策:編集#2
ユーザーがソートできるHTMLリストがあります。ドラッグ アンド ドロップ操作のたびにデータを保存したくないので、アンロード時にデータを Cookie とデータベースに保存します。それは働いていますが、:
データを保存した後、リストは非表示になり、次の行に「構文エラー」が表示されます。
<!DOCTYPE html>
何も変更せずに同じページを更新 (F5) した後、すべてが正常に動作するため、奇妙です。
原因を突き止めようとしますが、うまくいきません。それが流れです:
1. visit the page (index.php)
2. change the list (set: list_is_dirty = true)
3. click any internal link (call $(window).unload( ... save_data() ... )
4. target page appears without the list (syntax error!)
5. refreshing the page (everything works fine)
このエラーを見つける方法はありますか? ツールや戦略はありますか?それとも、アンロード機能と同じ経験ですか?
前もって感謝します!
編集:
いくつかのコード:
var list_is_dirty = false;
// document ready?
$(function() {
function sort_list() {
// some code, not important
}
sort_list();
$(window).unload(function() {
if (list_is_dirty == true) {
/* ---------- HERE's the error! ---------- */
/* The error occures when I try to call the script.php
I tried load(), $.post(), $.get() but nothing works.
The string is correct. I'm not even able to call any of
these functions without params.
*/
// send data to script.php to save data
$("#div").load("script.php?str="+list_data_str);
$.cookie("list_data", list_data_str);
}
});
}
編集#2 /解決策: 理由はわかりませんが、すべてがjQuery.unload()の代わりにwindow.onbeforeunloadで機能します。説明は素晴らしいでしょう!紛らわしいスレですみません!
window.onbeforeunload = function(e) {
$("#div").load("script.php");
}