热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

做考试系统用到的关于onbeforeunload一些兼容性问题

最近做考试系统,一些效果存在一些兼容性问题,尤其是ie6,本人js不是很好,通过查资料解决了这些问题,现总结下

最近做考试系统,一些效果存在一些兼容性问题,尤其是ie6,本人js不是很好,通过查资料解决了这些问题,现总结下:

关于onbeforeunload问题:

考试时离开页面需要提示,但是直接用此方法或onunload,我测试在谷歌浏览器不行。如下代码可解决:

 

[Javascript] view plaincopy
  1. window.onbeforeunload = function (e) {   
  2.     e = e || window.event;   
  3.     // For IE and Firefox prior to version 4   
  4.     if (e) {   
  5.     e.returnValue = '确定退出吗?';   
  6.     }   
  7.     // For Safari   
  8.     return '确定退出吗?';   
  9. };   

但是当你需要提交表单时,或者ajax什么的,它也会提示,这样肯定是不行的。于是在页面中加入一个隐藏标签,例如

 

通过获取他的值来判断是否执行onbeforeunload方法。于是代码变成这样:

 

[Javascript] view plaincopy
  1. window.onbeforeunload = function (e) {   
  2.      e = e || window.event;   
  3.      var flag = document.getElementById('hidsub').value  
  4.      if(!flag){  
  5.         if (e) {   
  6.            e.returnValue = '确定退出吗?';   
  7.         }   
  8.         return '确定退出吗?';   
  9.      }  
  10.  };   

当然你要在相应的a标签上加入 οnclick="document.getElementById('hidsub').value='1';func();"让隐藏域获取到值,这样就不会执行onbeforeunload了。

 

还有问题!一般我们做一些点击事件会在a标签加上href='Javascript:void(0);' 在ie下,onbeforeunload也会执行。具体我也不说了,网上可以查到很多。

这时如果换成href='#'就不会执行了,但是会跳到锚点,这也是不行的。可以改成href='###'或href='#this'。还可以在a标签onclick事件里加入return false;来阻止onbeforeunload。


另外还有一个问题,就是iframe里如果刷新父页面使用parent.location.reload();会在firefox里造成死循环。这时只需改成parent.location.reload(true);就可以了。

 

原文:http://blog.csdn.net/ameol/article/details/9021071

转:https://www.cnblogs.com/azhqiang/p/4587922.html



推荐阅读
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • Java大文件HTTP断点续传到服务器该怎么做?
    最近由于笔者所在的研发集团产品需要,需要支持高性能的大文件http上传,并且要求支持http断点续传。这里在简要归纳一下,方便记忆 ... [详细]
  • java.lang.Class.getDeclaredMethod()方法java.lang.Class.getDeclaredMethod()方法用法实例教程-方法返回一个Met ... [详细]
  • nginx 解决跨域问题 No: 'AccessControlAllowOrigin' header is present on the requested resource
    错误信息:1, ... [详细]
  • Ifyouaretryingtostopthesessionfromtimeingoutallthetimeyoucandothisratherthanincreasingthes ... [详细]
  • Html5第一章
    Html5第一章 ... [详细]
author-avatar
TT0852_235
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有