JS和CSS的多浏览器兼容(3)
3.Javascript的浏览器兼容性问题
3.1 集合类对象问题
说明:IE下,可以使用()或[]获取集合类对象; Safari及Chrome下,只能使用[]获取集合类对象.
解决方法:统一使用[]获取集合类对象.
3.2 获取对象方式
说明:HTML对象的 id和name 在IE使用getElementById都会找到,在Safari及Chrome中name是找不到的,必须严格使用getElementById和getElementsByName.
解决方法:id使用getElementById, name使用getElementsByName,并要注意大小写
3.3 模态和非模态窗口问题
说明:IE下,可以通过showModalDialog和showModelessDialog打开模态和非模态窗口; 在Chrome中是将其作为window.open方法处理,而且不能使用window.returnValue的方法返回值
解决方法:在Chrome中使用window.opener.returnValue=’value’的方法返回值, 打开窗体时用半透明DIV遮住页面主体,在其之上显示“对话框”内容。showModelessDialog 方可以使用 window.open 代替
例子:父窗体
|
<!DOCTYPE html> <html> <head> <title></title> <script type="text/javascript"> function openDialog() { //for chrome if (navigator.appName == "Netscape") { window.document.getElementById("winCover").style.display="block"; } var retValue = window.showModalDialog("dialog.html?temp=" + Math.random(), window, 'scroll=no;resizable=no;help=no;status=no;center=yes;dialogHeight=400px;dialogWidth=300px'); //for chrome if (retValue == undefined) { retValue = window.returnValue; } if (navigator.appName == "Netscape") { window.document.getElementById("winCover").style.display = "none"; } alert("return value: " + retValue); } </script> </head> <body style="height:100%"> <input type="button" onclick="javascript: openDialog();" value="Show Modal dialog"/> <div id="winCover" style="z-index:100; left:0px; top:0px; width:100%; height:100%; position:fixed; background-color:#e0e0e0; filter:Alpha(Opacity=60); opacity:0.6; display:none"></div> </body> </html> |
子窗体
|
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> function rt(s) { if (window.opener) { //for chrome window.opener.returnValue = s; window.close(); } else { window.returnValue = s; window.close(); } } </script> </head> <body> <input type="button" value="close" onclick="javascript: rt('abc');" /> </body> </html> |
3.4 event问题
说明:在IE下,可以直接在event中调用function,但是在Chrome中这样是无效的
解决方法:在function前统一加上”javascript:”,包括在服务器代码中addAttribute
例子:这样写在Chrome中无效
<input type="button" value="close" onclick="rt('abc');" />
应改为:
<input type="button" value="close" onclick="javascript: rt('abc');" />
JS和CSS的多浏览器兼容(3)的更多相关文章
- JS和CSS的多浏览器兼容(2)
2.Css的浏览器兼容性 方法一,根据不同的浏览器加载不同的css file <!DOCTYPE html> <html> <head> <title> ...
- JS和CSS的多浏览器兼容(1)
1.指定文件在IE浏览器中的兼容性模式 要为你的网页指定文件模式,需要在你的网页中使用meta元素放入X-UA-Compatible http-equiv 标头.以下是指定为Emulate IE7 m ...
- JS控制CSS3,添加浏览器兼容前缀
不同浏览器对于有些css3属性名字定义的时候,会带上特有的前缀,所以在css编写的时候,经常会一个属性写多个不同的前缀进行兼容.比如: div { transform: rotate(30deg); ...
- 浅谈CSS hack(浏览器兼容)
今天简单写一点关于浏览器兼容的处理方法,虽然百度上已经有很多,但是我还是要写! 先看一个图 这个图描述了2016年1月至8月网民们所使用的浏览器市场份额(来源:http://tongji.baidu. ...
- CSS在不同浏览器兼容问题,margin偏移/offset溢出等
margin在垂直取值时取最大值 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- 在不同的浏览器使用不同的css样式,解决浏览器兼容问题
区别IE6与FF: background:orange; *background:blue; 区别IE6与IE7: background:green !import ...
- 关于引用JS和CSS文件刷新浏览器缓存问题,部署服务器后客户端样式不刷新
问题描述 对样式的css文件进行了修改,部署到服务器后访问发现页面展示不正常,但是刷新之后就会展示正常. 问题分析 研究之后发现可能的原因有 css文件过大,加载缓慢 本地缓存问题,虽然服务器修改了c ...
- JS中常遇到的浏览器兼容问题和解决方法
今天整理了一下浏览器对JS的兼容问题,希望能给你们带来帮助,我没想到的地方请留言给我,我再加上: 常遇到的关于浏览器的宽高问题: //以下均可console.log()实验 var winW=docu ...
- JS中常遇到的浏览器兼容问题和解决方法【转】
今天整理了一下浏览器对JS的兼容问题,希望能给你们带来帮助,我没想到的地方请留言给我,我再加上: 常遇到的关于浏览器的宽高问题: //以下均可console.log()实验 var winW=docu ...
随机推荐
- AutoMappeer自动映射
AutoMapper是用来解决对象之间映射转换的类库.对于我们开发人员来说,写对象之间互相转换的代码是一件极其浪费生命的事情,AutoMapper能够帮助我们节省不少时间.
- 面向对象编程(十)——继承之Super关键字及内存分析
Super关键字
- python故障查找:超时未设置
最近一台基于python的应用服务总是出现问题.需求是用户可以在页面上提交批量处理任务,后台把这些任务入到一个Queue里排队处理,然后通过一个线程专门处理.现在总是偶尔出现假死状态,任务处理中断执行 ...
- mysql 启动服务
http://blog.chinaunix.net/uid-13642598-id-3153537.html mysql的四种启动方式: 1.mysqld 启动mysql服务器:./mysqld -- ...
- IIS 相关
Restart IIS: run "iisreset" command check port usage: netstat -ano How to set up SSL in II ...
- Sqoop -- 用于Hadoop与关系数据库间数据导入导出工作的工具
Sqoop是一款开源的工具,主要用于在Hadoop相关存储(HDFS.Hive.HBase)与传统关系数据库(MySql.Oracle等)间进行数据传递工作.Sqoop最早是作为Hadoop的一个第三 ...
- php扩展mssql.so连接sqlserver2008
1.安装配置freetds wget http://mirrors.xmu.edu.cn/ubuntu/archive/pool/main/f/freetds/freetds_0.82.orig.t ...
- js - ajax中的get和post说明
转自:http://www.cnblogs.com/hateyoucode/archive/2009/12/09/1620050.html 一.谈Ajax的Get和Post的区别 Get方式: 用 ...
- Dive into python 实例学python (2) —— 自省,apihelper
apihelper.py def info(object, spacing=10, collapse=1): """Print methods and doc strin ...
- 从零开始PHP攻略(2)——操作符与迭代整理
目录: 10.操作符整理 11.表单计算代码 12.优先级与结合性 13.可变函数 14.条件判断 15.循环迭代 16.跳出控制 17.可替换的控制结构 10.操作符 10.1 算术操作符 算术操作 ...