我有一個Flash遊戲,我試圖保存用戶關閉瀏覽器選項卡時的狀態。它是使用以下的jquery代碼:如何製作跨瀏覽器的窗口卸載請求?
//Called from Flash when window closes
function sendRequest(url, params) {
$.ajax({
type: "POST",
async: false,
url: url,
data: params
})
}
$(window).unload(function() {
//Make Flash attempt to save the game when the window closes.
//Flash gets the necessary data and calls sendRequest()
document["flashGame"].saveBeforeUnload();
});
- 火狐:正常工作
- 鉻:正常工作時重裝但不是當閉合翼片或關閉瀏覽器
- IE(所有版本):根本不起作用
I wan它可以正確地在所有瀏覽器中工作,但最重要的是Chrome(我們的用戶不是很多都有IE)。
Flash正確地調用了sendRequest(在所有瀏覽器中都使用警報測試過),所以我不認爲這些問題來自Flash,但它可能會發生。
我不認爲你可以也不會做我認爲你應該依靠.unload,如果用戶想關閉瀏覽器他們想關閉瀏覽器。如果瀏覽器等待,您的請求是否需要超過幾毫秒才能完成保存?爲什麼不保存遊戲說30秒定時器,以便他們最長時間會出30秒,那麼你不必擔心卸載事件 – dstarh
@dstarh:我們已經將遊戲保存在計時器上。這樣做的目的是防止玩家失去最後幾秒的行動。通常,這些最後幾項行動很重要。 – Fragsworth
所以你說,點擊X關閉瀏覽器窗口的人應該期望他們在過去幾秒內完成的所有工作都應該保存下來?我認爲培訓用戶點擊一個保存按鈕,然後關閉瀏覽器花費的時間會更多。我們需要讓用戶擺脫「我把電源線從牆上拔下來,爲什麼沒有一切能夠節約!!!」 – dstarh