在Firefox 3中,我能够编写一个自定义确认弹出窗口:
window.onbeforeunload = function() {
if (someCondition) {
return 'Your stream will be turned off';
}
}
Run Code Online (Sandbox Code Playgroud)
现在在Firefox 4中,它不会显示我的自定义消息.它提供的默认消息甚至不能准确应用我的应用程序.

可以覆盖此默认消息吗?
我试图找出用户何时离开指定页面.找到他在页面内部使用链接导航时没有问题,但我需要标记一些内容,例如当他关闭窗口或输入另一个URL并按下回车时.第二个不是那么重要,但第一个是.所以这是一个问题:
我怎么能看到用户何时关闭我的页面(捕获window.close事件),然后......并不重要(我需要发送一个AJAX请求,但如果我能让它运行警报,我可以做其余的).
我正在开发一个php/javascript聊天.
当用户登录时,他/她的用户名将被插入名为的MySQL表中queue.此插入返回mysql_insert_id()将存储在名为的会话变量中$_SESSION['CHAT_QUEUE_ID']
当用户关闭页面时,我需要删除MySQL表行.
我尝试了以下,但没有成功:
js文件
window.onbeforeunload = closeSession;
function closeSession(){
$.ajax({
url: "/chat/process/chat.php",
type: "GET"
});
return "disconnected";
}
Run Code Online (Sandbox Code Playgroud)
chat.php
$delete= "DELETE FROM queue WHERE id = " . $_SESSION['CHAT_QUEUE_ID'];
// query, etc
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
我有一个仪表板,用户可以在其中切换一些输入值以配置页面的外观.
我想将这些更改存储在数据库表中,因此当用户返回时,根据从数据库检索的特定用户配置显示仪表板.
我知道如何将这些值发送到DB以及如何检索它们
每次用户更改配置时,我都不想进行ajax调用.
相反,我认为这种情况会更好:
我的问题
一个解决方案(?)将使用这样的onbeforeunload事件:
window.onbeforeunload = function(e) {
// Perform the ajax call
return 'Do you want to save the configuration changes?';
};
Run Code Online (Sandbox Code Playgroud)
但是,如果用户的浏览器阻止弹出窗口,该函数将无法执行?
有没有办法在onbeforeunload事件上执行ajax调用,而无需调用对话框?
javascript ×4
jquery ×2
ajax ×1
browser ×1
dom-events ×1
firefox ×1
firefox4 ×1
php ×1
window ×1