js在IE和firefox中的不同

合集下载

【珍藏版】IE6,IE7,IE8,Firefox等浏览器兼容的css hack

【珍藏版】IE6,IE7,IE8,Firefox等浏览器兼容的css hack

IE6,IE7,IE8,Firefox等浏览器兼容的css hack一、开发平台的选择我很幸运, 我接触网页前台的时候Firefox2 已经十分红火, 我的所有工作都是在Firefox 上展开, 同时兼容其他浏览器的. 这样做肯定会比在IE 做好再到别的浏览器兼容来得容易, 因为IE 对老标准支持还是很不错的, 而IE 的一些特有功能人家却不支持. 所以我推荐以Firefox 结合Firebug 扩展作为平台.在解决兼容方法上,想定出一个统一的规范,个人认为应该以下面3点为基本原则:权衡成本:在浏览器被淘汰后,如何快速清理掉无用代码可维护:在资源成本和完美间平衡的向后兼容可读:省力、易记二、Hack 的顺序使用Firefox 作为平台, 只要代码写得够标准, 其实要Hack 的地方不会很多的, IE 以外的浏览器几乎都不会有问题, 所以可以暂时忽略,顺序如下:Firefox -> IE8 -> IE7 -> IE6 -> 其他三、CSS 选择器Hack/* Opera */@media all and (-webkit-min-device-pixel-ratio:10000), not all and(-webkit-min-device-pixel-ratio:0){head~body .sofish{display:block;}}这种写法的优缺点是:优点:全面,各种HACK都有;清理无用代码里易认缺点:选择器名称不易记;代码量多(要重复写选择器)四、CSS 属性Hack.sofish{padding:10px;padding:9px\9; /* all ie */padding:8px\0; /* ie8-9 */*padding:5px; /* ie6-7 */+padding:7px; /* ie7 */_padding:6px; /* ie6 */}这种写法的优缺点是:优点:易记;代码少缺点:不全面五、IE 注释<!--[if IE]>IE only<![endif]--><!--[if !IE]>NOT IE<![endif]-->这种写法的优缺点是:优点:安全;向后兼容好;易维护缺点:用不好会增加HTTP请求;用得好代码又多六、浏览器探测:JS/后端程序判断// 以jQuery为例,检测是否是IE6,是则加上class="ie6" if ($.browser.msie && $.browser.version = 6 ){ $('div').addClass('ie6');}这种写法的优缺点是:优点:全面;易维护;可读性高缺点:占资源;代码量大(要重写选择器)总结:-----------------1、尽量使用单独HACK这样维护起来成本比较低,改动不会影响其他的浏览器,而一旦有浏览器淘汰,只要搜索关键字,就可以批量去掉这些代码。

JS复制内容到剪贴板_兼容IE、Firefox、Chrome、Safari所有浏览器

JS复制内容到剪贴板_兼容IE、Firefox、Chrome、Safari所有浏览器

JS复制内容到剪贴板: 兼容IE、Firefox、Chrome、Safari所有浏览器正文:现在浏览器种类也越来越多,诸如 IE、Firefox、Chrome、Safari等等,因此现在要实现一个js复制内容到剪贴板的小功能就不是一件那么容易的事了。

在FLASH 9 时代,有一个通杀所有浏览器的js复制内容到剪贴板的方案:这个方案是一个最流行的方法: 著名的Clipboard Copy解决方案利用一个clipboard.swf作为桥梁,复制内容到剪贴板。

原理是:创建一个隐藏的flash文件,同时给给flash的变量FlashVars 赋值“clipboard=..”,通过这个赋值flash就会把复制的内容放到剪贴板。

这个方法兼容IE、Firefox、Opera、chrome、 Safari,真可谓“万能”的解决方案。

浏览器Flash的安装率非常高,这几乎是一个完美的解决方案。

clipboard.swf 的下载地址:_clipboard.rar.rar但是 Flash 10 时代,上面的方法已经不行了。

因为flash10中规定了只有在swf上进行了真实的操作(比如鼠标点击)才能访问剪切板,而上述方法只是使用了一个隐藏的swf文件,通过javascript操作flash的剪贴板,用户并没有对swf文件进行真实的操作,因此这个方法也就失效了。

那么如何解决这个“真实操作”的问题呢?可以使用一个JavaScript库:Zero Clipboard,利用这个js库可以支持利用flash 10 实现复制到剪贴板。

这个方法原理是在一个透明的flash(对用户来说是不可见的)上覆盖一个dom元素比如button或div,当点击这个dom时,实际点击的是flash,从而访问flash的剪贴板。

飘易提供的例子下载:zeroclipboard.rar调试时请上传到网站,本地直接打开flash会出错的,没权限。

zeroClipboard.js文件里moviePath属性是falsh的地址,就是目录下的那个ZeroClipboard.swf存放的地址位置。

不同浏览器兼容报告

不同浏览器兼容报告

Shuo de——中国金融数据及工具首席服务商IE、FF、Safari、OP不同浏览器兼容报告柯伯勋2011-03-08上海万得资讯科技有限公司Shanghai Wind Information Co., Ltd.地址: 上海浦东新区福山路33号建工大厦9楼邮编Zip : 200120电话T el : (8621)6886 2280传真Fax : (8621)6886 2281Email : sales@主页:1浏览器内核简介浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”。

负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页。

所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。

不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。

浏览器内核很多,如果加上所有的几乎没有什么人在用的非商业的免费内核,那么可能大约有10款以上甚至更多,不过通常我们比较常见的大约只有以下四种,下面先简单介绍一下。

1.1Trident:IE浏览器使用的内核,该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到目前的IE8。

Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现(如Maxthon、The World 、TT、GreenBrowser、AvantBrowser等)。

此外,为了方便也有很多人直接简称其为IE内核(当然也不排除有部分人是因为不知道内核名称而只好如此说)。

由于IE本身的“垄断性”(虽然名义上IE并非垄断,但实际上,特别是从Windows 95年代一直到XP初期,就市场占有率来说IE的确借助Windows的东风处于“垄断”的地位)而使得Trident内核的长期一家独大,微软很长时间都并没有更新Trident内核,这导致了两个后果——一是Trident内核曾经几乎与W3C标准脱节(2005年),二是Trident内核的大量Bug等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为IE浏览器不安全的观点,也有很多用户转向了其他浏览器,Firefox和Opera就是这个时候兴起的。

div+CSS浏览器兼容问题整理(IE6.0、IE7.0,ie8,FireFox..

div+CSS浏览器兼容问题整理(IE6.0、IE7.0,ie8,FireFox..

div+CSS浏览器兼容问题整理(IE6.0、IE7.0,ie8,FireFox..CSS技巧1.div的垂直居中问题vertical-align:middle; 将⾏距增加到和整个DIV⼀样⾼ line-height:200px; 然后插⼊⽂字,就垂直居中了。

缺点是要控制内容不要换⾏powered by 25175.2. margin加倍的问题设置为float的div在ie下设置的margin会加倍。

这是⼀个ie6都存在的bug。

解决⽅案是在这个div⾥⾯加上display:inline;例如:<#div id=”imfloat”>相应的css为#IamFloat{float:left;margin:5px;/*IE下理解为10px*/display:inline;/*IE下再理解为5px*/}3.浮动ie产⽣的双倍距离#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产⽣200px的距离 display:inline; //使浮动忽略}这⾥细说⼀下block与inline两个元素:block元素的特点是,总是在新⾏上开始,⾼度,宽度,⾏⾼,边距都可以控制(块元素);Inline元素的特点是,和其他元素在同⼀⾏上,不可控制(内嵌元素);#box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同⼀⾏排列的效果 diplay:table;4 IE与宽度和⾼度的问题IE 不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。

这样问题就⼤了,如果只⽤宽度和⾼度,正常的浏览器⾥这两个值就不会变,如果只⽤min-width和min-height的话,IE下⾯根本等于没有设置宽度和⾼度。

⽐如要设置背景图⽚,这个宽度是⽐较重要的。

要解决这个问题,可以这样:#box{ width: 80px; height: 35px;}html>body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;}5.页⾯的最⼩宽度min -width是个⾮常⽅便的CSS命令,它可以指定元素最⼩也不能⼩于某个宽度,这样就能保证排版⼀直正确。

IE浏览器和火狐浏览器兼容问题之欧阳学创编

IE浏览器和火狐浏览器兼容问题之欧阳学创编

IE浏览器和火狐浏览器兼容问题.txt22真诚是美酒,年份越久越醇香浓型;真诚是焰火,在高处绽放才愈是美丽;真诚是鲜花,送之于人手有余香。

一颗孤独的心需要爱的滋润;一颗冰冷的心需要友谊的温暖;一颗绝望的心需要力量的托慰;一颗苍白的心需要真诚的帮助;一颗充满戒备关闭的门是多么需要真诚这一把钥匙打开呀!IE浏览器和火狐浏览器兼容问题——CSS篇一、css+div 样式 IE与FF兼容问题汇总IE和火狐的css兼容性问题归总CSS对浏览器器的兼容性具有很高的价值,通常情况下IE和火狐浏览器存在很大的解析差异,这里介绍一下兼容要点。

1、DOCTYPE 影响 CSS 处理2、FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行3、FF: body 设置text-align 时, div 需要设置margin: auto(主要是 margin-left,margin-right) 方可居中4、FF: 设置 padding 后, div 会增加 height 和 width, 但IE 不会, 故需要用 !important 多设一个 height 和 width5、FF: 支持!important, IE 则忽略, 可用!important 为FF 特别设置样式,值得注意的是,一定要将xxxx !important 这句放置在另一句之上6、div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高line-height:200px; 然后插入文字,就垂直居中了。

缺点是要控制内容不要换行7、cursor: pointer 可以同时在IE FF 中显示游标手指状, hand 仅 IE 可以8、FF: 链接加边框和背景色,需设置 display: block, 同时设置float: left 保证不换行。

参照menubar, 给a 和menubar 设置高度是为了避免底边显示错位, 若不设height, 可以在 menubar 中插入一个空格。

js无提示关闭浏览器窗口的两种方法分析

js无提示关闭浏览器窗口的两种方法分析

js⽆提⽰关闭浏览器窗⼝的两种⽅法分析
1,使⽤js:
⽤多种⽅式打开⼀个页⾯,然后⽤ window.close() 关闭它,在各浏览器下表现有所不同。

如在地址栏中直接输⼊URL
时,Firefox Chrome Safari 下调⽤ window.close() 关闭页⾯⽆效。

再如 Ctrl + 点击链接打开的窗⼝,Firefox 下⽆法通过调⽤window.close() 来关闭。

firefox下⽆法关闭可能原因:
不是JS代码window.close()的问题,⽽是Firefox的配置问题,解决⽅法如下:
在Firefox地址栏⾥输⼊ about:config
在配置列表中找到 dom.allow_scripts_to_close_windows
点右键的选切换把上⾯的false修改为true即可。

注:默认是false,是为了防⽌脚本乱关窗⼝
常⽤关闭浏览器js代码:
window.opener = null;//为了不出现提⽰框
window.close();//关闭窗⼝
2,bat⽂件:
explorer.exe open=https://
Ping -n 80 127.0.0.1>nul
Taskkill /f /im "iexplore.exe"
使⽤windows的计划任务,执⾏上⾯bat⽂件,定时访问某个页⾯,并在80秒后关闭ie。

JavaScript简介

JavaScript简介

JavaScript简介⼀、简介Javascript,⼀种⾼级编程语⾔,通过解释执⾏,是⼀门动态类型,⾯向对象(基于原型)的直译语⾔。

它已经由欧洲电脑制造商协会通过ECMAscript实现语⾔的标准化。

它被世界上的绝⼤多数⽹站所使⽤,也被世界主流浏览器(Chrome、IE、FireFox等)⽀持。

JavaScript是⼀门基于原型、函数先⾏的语⾔,是⼀门多范式的语⾔,它⽀持⾯向对象编程,命令式以及函数式编程。

它提供语法来操控⽂本、数组、⽇期以及正则表达式等,不⽀持I/O,⽐如⽹络、存储和图形等,但这些都可以由它的宿主环境提供⽀持。

JavaScript虽与Java有很多相似性,但这两门编程语⾔从设计之初就有很⼤的不同,JavaScript的语⾔设计主要受到了Self(⼀种基于原型的编程语⾔)和Scheme(⼀门函数式编程语⾔)的影响。

在语法结构上它⼜与C语⾔有很多相似(例如if条件语句、while循环、switch语句、do-while循环等)。

⼆、组成部分⼀个完整的 JavaScript 实现是由以下 3 个不同部分组成的:核⼼(ECMAscript)、⽂档对象模型(Document Object Model,简称DOM)、浏览器对象模型(Browser Object Model,简称BOM)。

三、相关概念JavaScript程序是由若⼲语句组成的,语句是编写程序的指令。

JavaScript提供了完整的基本编程语句,它们是:赋值语句、switch选择语句、while循环语句、for循环语句、for each循环语句、do...while循环语句、break循环中⽌语句、continue循环中断语句、with语句、try…catch语句、if语句(if..else,if…else if…)。

四、基本特点Javascript就是适应动态⽹页制作的需要⽽诞⽣的⼀种新的编程语⾔,如今越来越⼴泛地使⽤于Internet⽹页制作上。

前端模拟试题javascript

前端模拟试题javascript

JavaScript模拟试题一、单项选择题1.我们可以在以下哪个HTML 元素中放置Javascript 代码?A.<script>B.<javascript>C.<js>D.<scripting>2.写"Hello World" 的正确Javascript 语法是?A.("Hello World")B."Hello World"C.response.write("Hello World")D.document.write("Hello World")3.插入Javacript 的正确位置是?A.<body> 局部B.<head> 局部C.<body> 局部和<head> 局部均可4.引用名为"**x.js" 的外部脚本的正确语法是?A.<script src="**x.js">B.<script href="**x.js">C.<script name="**x.js">5.外部脚本必须包含<script> 标签吗?A.是B.否6.如何在警告框中写入"Hello World"?A.alertBox="Hello World"B.msgBox("Hello World")C.alert("Hello World")D.alertBox("Hello World")7.如何创立函数?A.function:myFunction()B.function myFunction()C.function=myFunction()8.如何调用名为"myFunction" 的函数?A.call function myFunctionB.call myFunction()C.myFunction()9.如何编写当i 等于5 时执行一些语句的条件语句?A.if (i==5)B.if i=5 thenC.if i=5D.if i==5 then10.如何编写当i 不等于5 时执行一些语句的条件语句?A.if =! 5 thenB.if <>5C.if (i <> 5)D.if (i != 5)11.在JavaScript 中,有多少种不同类型的循环?A.两种。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

js在IE和firefox中的不同 (2009-05-18 16:12:52) 1.firefox不能对innerText支持。 firefox支持innerHTML但却不支持innerText,它支持textContent来实现innerText,不过默认把多余的空格也保留了。如果不用textContent,如果字符串里面不包含HTML代码也可以用innerHTML代替。

2.禁止选取网页内容: 在IE中一般用js:obj.onselectstart=function(){return false;} 而firefox用CSS:-moz-user-select:none

3.滤镜的支持(例:透明滤镜): IE:filter:alpha(opacity=10); firefox:-moz-opacity:.10;

4.捕获事件: IE:obj.setCapture() 、obj.releaseCapture() Firefox: document.addEventListener("mousemove",mousemovefunction,true); document.removeEventListener("mousemove",mousemovefunction,true);

5.获取鼠标位置: IE:event.clientX、event.clientY firefox:需要事件函数传递事件对象 obj.onmousemove=function(ev){ X= ev.pageX;Y=ev.pageY; }

6.DIV等元素的边界问题: 比如:设置一个div的CSS::{width:100px;height:100px;border:#000000 1px solid;} IE中:div的宽度(包括边框宽度):100px,div的高度(包括边框宽度):100px; 而firefox:div的宽度(包括边框宽度):102px,div的高度(包括边框宽度):102px;

所以在做这个兼容IE和firefox的拖动窗口时,在js和css的写法上要动点脑筋,给大家两个小技巧

一.判断浏览器类型: var isIE=document.all? true:false; 我写了一个变量,如果支持document.all语法那么isIE=true,否则isIE=false 二.在不同浏览器下的CSS处理: 一般可以用!important来优先使用css语句(仅firefox支持) 比如:{border-width:0px!important;border-width:1px;} 在firefox下这个元素是没有边框的,在IE下边框宽度是1px

1.document.formName.item("itemName") 问题 问题说明:IE下,可以使用 document.formName.item("itemName") 或 document.formName.elements ["elementName"];Firefox下,只能使用document.formName.elements["elementName"]。 解决方法:统一使用document.formName.elements["elementName"]。

2.集合类对象问题 问题说明:IE下,可以使用 () 或 [] 获取集合类对象;Firefox下,只能使用 [ ]获取集合类对象。 解决方法:统一使用 [] 获取集合类对象。

3.自定义属性问题 问题说明:IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用 getAttribute() 获取自定义属性;Firefox下,只能使用 getAttribute() 获取自定义属性。 解决方法:统一通过 getAttribute() 获取自定义属性。

4.("idName")问题 问题说明:IE下,可以使用 ("idName") 或 getElementById("idName") 来取得 id 为 idName 的HTML对象;Firefox下,只能使用 getElementById("idName") 来取得 id 为 idName 的HTML对象。 解决方法:统一用 getElementById("idName") 来取得 id 为 idName 的HTML对象。

5.变量名与某HTML对象ID相同的问题 问题说明:IE下,HTML对象的ID可以作为 document 的下属对象变量名直接使用,Firefox下则不能;Firefox下,可以使用与HTML对象ID相同的变量名,IE下则不能。 解决方法:使用 document.getElementByIdx("idName") 代替 document.idName。最好不要取HTML对象ID相同的变量名,以减少错误;在声明变量时,一律加上var关键字,以避免歧义。

6.const问题 问题说明:Firefox下,可以使用const关键字或var关键字来定义常量;IE下,只能使用var关键字来定义常量。 解决方法:统一使用var关键字来定义常量。 7.input.type属性问题 问题说明:IE下 input.type 属性为只读;但是Firefox下 input.type 属性为读写。 解决办法:不修改 input.type 属性。如果必须要修改,可以先隐藏原来的input,然后在同样的位置再插入一个新的input元素。

8.window.event问题 问题说明:window.event 只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用。 解决方法:在事件发生的函数上加上event参数,在函数体内(假设形参为evt)使用 var myEvent = evt?evt:(window.event?window.event:null) 示例:

相关文档
最新文档