怎么用javascript在chrome关闭之前运行一个函数?

chrome不支持onunload啊...这段代码也不行:window.onbeforeunload=function(){myFunction();//要运行的函数re... chrome不支持onunload啊...这段代码也不行:
window.onbeforeunload=function(){
myFunction();//要运行的函数
return "1';
}
只有return 那句有用..求在关闭浏览器时运行那个函数的方法
展开
 我来答
网海1书生
科技发烧友

2013-05-31 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26226

向TA提问 私信TA
展开全部
事实上,你那个myFunction()函数是运行了的,只是它会自动忽略类似alert、confirm、prompt之类的所有涉及人机对话交流或者说会使页面自动停顿的命令,所以你会察觉不到它运行了。其实不单是chrome,在IE等浏览器上也一样的。

因为当onbeforeunload被触发时,浏览器是以用户已经决定要关闭浏览器为前提进行假设的,所以它是不允许在出现它自己本身的提示框之前出现其他对话框,以免节外生枝,产生不可预知的后果。

你试试下面的代码就知道了:

<script>
var x;
function myFunction(){
x="你能看到这行,就说明myFunction函数运行了!";
alert(x);
}
window.onbeforeunload=function(){
myFunction();
return x;
}
</script>

补充一下:如果你的目的是想用你自己的提示框代替浏览器自动弹出的那个提示框,那么就乘早罢手吧!我几年前就想这么做了,后来才发现根本不可能的,因为这个事件被触发后会影响到浏览器内部(或者说底层)的一些东西,所以它是不可能让你自由设置的,这也是浏览器脚本事件中最没有自由度的一个了。
更多追问追答
追问
好详尽,不过我觉得是应该没有运行的,那个myfunction我写成修改数据库的一个值,通过一个按钮触发myfunction成功修改,但是关闭浏览器没有成功修改,所以myfunction应该是没运行的
其次,ie可以触发myfunction,成功修改了数据库的值,这个我尝试过了,,只是chrome比较奇葩只运行return语录,
追答
那你用return myFunction(); 试试啊
匿名用户
2013-05-31
展开全部
换个事件试试
追问
window.onbeforeunload window.onunload window.close都试过了好像都不行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式