我有一个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