`
sbfivwsll
  • 浏览: 63496 次
  • 性别: Icon_minigender_1
  • 来自: 四川
社区版块
存档分类
最新评论

IE与firefox 兼容问题 (二、项目经验总结)

 
阅读更多

我们项目立即要做ie与firefox兼容的事情了,特别地开个帖子来记录些点点滴滴...待正式做后,这里的内容就more起来了

 

1、第一天,遇到了a标签的click()事件问题:因为我们项目里使用了大量的异步请求,而这些请求全是使用a标签的onclck事件绑定的。。。在ie里边可以通过触发a标签的click()事件来触发请求。但是到了火狐后,对a标签的click()事件失效。。后来俺想了个办法:为a标签绑定click()方法。。。通过其触发a标签的onclick()方法。但是因为我们项目a标签的onclick方法是通过prototype封装的js来动态绑字的。。火狐不识别,该方案失败。最后想到了input button标签,该可以通过click()来触发其单击的事件。因此在组件里边将生成a 标签的代码全部改为input button,问题得到解决。

2、第二天,任然遇到第一天的问题,只不过换成了div了。。。因此我写了个公共方法来判断:

if(火狐浏览器)

{

    if(obj && obj.onclick)/*如果对象存在,并且存在对象的onclick方法,则将click方法关联到onclick方法上。*/

{

    obj.click=function(){

obj.onclick();

};

}

}

,在页面加载后调用这个js,并传入相应的参数,成功搞定!

3、样式问题:我们界面分成了N多列,在火狐下严重变形,跑下去了。。。结果加了个float:left,成功搞定!

4、对于非标准属性值的问题:
在ie中,obj.setAttribute("")obj.setAttribute("a","b")<==>obj.a="b"; obj.getAttribute("a")<==>obj.a;
而在firefox 中,obj.setAttribute("")obj.setAttribute("a","b")<≠>obj.a="b"; obj.getAttribute("a")<≠>obj.a;
示例:

運行後的結果爲:

5、透明滤镜效果:ie:filter:alpha(opacity:0.5),firefox:opacity:0.5

6、iframe可编辑:ie->window.frames["iframeName"].designMode="on",

firefox->window.frames["iframeName"].document.designMode="on";window.frames["iframeName"].document.contentEditable="true"
7、div等标签的disabled设置为不可用:写个方法在其不可用时,将有的onclick等事件暂时保存,并将其清除掉。。。在设置为可以时再还原。。。

 

8、from表单的重复提交没效果,如下代码:

第一点点击后能出来效果,第二次点击firefox 就不发送数据了,不知道这是firefox故意为之还是w3c的标准(不过老朽好像没有看到过w3c有这样的标准)

修改方案为:

在form提交之前更改下target属性,就可以了。修改后的代码为:

 

9、自动滚屏:

marquee是个好东西啊
可惜firefox/ie8对他的支持不够好

marquee在firfox下有时候滚动,有时候不滚动..
这是最令人头疼的事情
要不然不滚,要不然滚,这个问题可能就更容易解决

有很多js脚本可以模拟滚动

不过发现的最简单的办法是
把marquee的标签放在js里面。。。。。。。

遇到此类问题,可以这样解决看看。

 

10、parentElement只支持ie,而标准的parentNode同时支持IE+firefox

 

11、input选择框触发选择的问题:
将以上代码保存后,到firefox点击input可以看到选不中checkbox。。。
解决办法是加个标记来判断,

12 from 表单内的文本回车提交

  在firefox 中,如果你有一个可见的表单,在表单的文本框里边按下回车,firefox会触发表单提交事件。解决办法:1、为所有的文本框添加keydown事件,屏蔽回车(13)事件。2、将form表单提交修改为隐藏,然后使用ajax等方法来提交。

13、firefox 文本框光标丢失

在用Firefox浏览页面时是否发现鼠标点击 textarea,input表单输入文本时闪烁的光标不见了,但能正常输入文本呢?
你很幸运遇到了”Firefox光标丢失”的问题,前阵子也被这问题搞到头晕晕的,结过网上查找等方法找出了如下:

以下面为例,总结了页面容器中设置了以下部分属性,均会导致Firefox光标丢失:

  1. overflow:auto
  2. overflow-x:auto;
  3. overflow-y:auto;
  4. overflow:scroll
  5. overflow-x:scroll;
  6. overflow-y:scroll;
  7. overflow-x:hidden;
  8. overflow-y:hidden;
  9. position:absolute
  • 1. 避免在body设置overflow:XXX令光标丢失,但overflow:hidden;除外
  • 2. 在position:absolute;加多个针对FF写的position:fixed; 但IE6不支持此属性,可以写成:#box { position:fixed;_position:absolute;
  •  

    14、获取input file 文件绝对路径问题:

    使用input file进行文件上传时,因为要获取文件的绝对路径从而知道得到文件的大小,但是在ie8中终始不能获取大小,调试代码后发现:XXX.value的路径居然变成了C:/fakepath/*,真实路径被取代了。在网上找到了答案:原来是因为IE8增加了安全选项,默认情况下不显示上传文件的真实路径。

    解决办法:

    一、进入internet选项,修改下设置即可显示真实的文件路径。

    工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。

    二、使用js来获取文件的路径:

    但是,使用这个办法时要注意:input file 及其所有的父节点中不能有display:none属性的东西,不然获取不了路径。因此可以使用一个div,设置宽度大小为0;或使用一个浮动的层,将这个层移动到很远很远的地方(top:-999px;left:-999px;)。

    分享到:
    评论

    相关推荐

      纯js写的java搜索框,无数据库,IE,火狐兼容

      【标题】中的“纯js写的java搜索框,无数据库,IE,火狐兼容”意味着这是一个使用纯JavaScript编写的搜索功能,它不依赖任何后端数据库,并且可以在Internet Explorer(IE)和Firefox这两种不同的浏览器上正常运行...

      IE firefox cookies读取demo

      "IE firefox cookies读取demo"这个项目聚焦于在Windows 7操作系统下,通过编程方式读取Internet Explorer(IE)和Firefox这两款流行浏览器的cookies信息。 首先,我们需要了解什么是cookies。Cookies是由Web服务器...

      一个包装IE控件的firefox插件

      在Web开发领域,由于IE和Firefox使用了不同的内核(IE使用Trident,而Firefox使用Gecko),因此直接在Firefox中运行为IE设计的ActiveX控件通常会遇到兼容性问题。这个插件通过技术手段解决了这个问题,使得开发者和...

      js+css精美日历支持ie和firefox等浏览器

      以上就是关于"js+css精美日历支持ie和firefox等浏览器"项目的关键知识点,每个点都值得深入学习和掌握,这对于任何前端开发者来说都是宝贵的经验。在实际项目中,开发者可能还结合了一些最佳实践和第三方库,以提高...

      IE和ff的兼容技巧

      本文将根据作者从事网站前端编程两年的经验总结,针对Internet Explorer(简称IE)和Mozilla Firefox(简称FF或Firefox)这两种常用浏览器的兼容性问题进行深入探讨,并提出相应的解决技巧。 #### 二、具体兼容技巧...

      myeclipse的IE和火狐浏览器插件

      "myeclipse的IE和火狐浏览器插件"允许开发者在MyEclipse内部直接通过Internet Explorer(IE)和Firefox浏览器打开并运行网页,极大地提高了开发效率。 **1. 插件安装与配置** 要使用这个功能,首先需要在MyEclipse...

      实际工作总结的CSS兼容解决办法

      如 `-webkit-` 用于Chrome、Safari,`-moz-` 用于Firefox,`-ms-` 用于IE,`-o-` 用于Opera。为保证跨浏览器兼容,需为新的CSS属性添加对应的前缀,如使用`-webkit-transition`、`-moz-transition`等。 对于不支持...

      kindeditor编辑器支持火狐IE等各个浏览器

      "Kindeditor编辑器支持火狐IE等各个浏览器"这个标题表明,该编辑器已经优化了对不同浏览器的支持,包括但不限于Firefox(火狐)和Internet Explorer(IE)。在Web开发中,浏览器兼容性是一项关键任务,因为用户可能...

      My97 DatePicker 4.72 Release js日历选择器,可直接用在项目中,目前最稳定的版本4.72,兼容IE10、火狐、谷歌浏览器

      这款控件以其稳定性和广泛的浏览器兼容性而受到青睐,特别是对于IE10、Firefox以及Google Chrome等主流浏览器。开发者在创建网页时,可以方便地集成这个组件,为用户提供一个直观的日期输入方式。 该版本4.72是经过...

      IE JS 调试 必备 工具

      - **兼容性问题**:IE与其他现代浏览器(如Chrome、Firefox)在JavaScript引擎和DOM实现上可能存在差异,可能导致某些代码在IE下运行不正常。开发者需要关注并测试在IE上的兼容性。 - **JScript与JavaScript**:IE...

      flash 嵌入网页 与IE, FF,傲游兼容问题

      6. 兼容性问题解决方法:在文档中提到,通过在标签内添加和在标签内设置wmode="window"的方式,可以分别解决傲游浏览器和Firefox浏览器的兼容性问题。这些方法的原理是通过调整Flash的窗口模式来解决不同浏览器渲染...

      底部固定悬浮工具栏jQuery代码兼容ie6+主流浏览器

      "底部固定悬浮工具栏jQuery代码兼容ie6+主流浏览器"这个资源提供了这样一个功能的实现,适用于多种浏览器环境,包括Internet Explorer 6到9以及Chrome和Firefox。 jQuery是一款广泛使用的JavaScript库,简化了...

      IE.zip_IE

      与之对应的是其他浏览器如Firefox的Gecko、Chrome的Blink等。 4. **JavaScript支持**:JavaScript是网页动态交互的关键,浏览器需要有一个JavaScript引擎来解释和执行脚本。IE的JScript是JavaScript的一种实现。 5...

      转转_js_print_ie

      在IE浏览器中,JavaScript打印功能可能会遇到兼容性问题,因为IE与其他现代浏览器如Chrome、Firefox在对Web标准的支持上有所不同。因此,开发者可能需要使用特定的IE兼容性模式,如使用`document.all`而非`document....

      jquery-easyui-1.4.5-解决了IE6/IE7下无法正常运行的问题

      《jQuery EasyUI 1.4.5:解决IE6/IE7兼容性问题与全面解析》 jQuery EasyUI 是一个基于 jQuery 的轻量级前端框架,它为开发者提供了丰富的组件和便捷的API,使得构建交互式的Web应用变得更加简单。在这个版本1.4.5...

      修复Unity3D3.x版本在IE下无法搜索脚本文档的问题

      5. **更新或更换浏览器**:由于IE的限制,考虑使用更现代的浏览器如Chrome、Firefox或Edge,它们对Web标准的支持更好,可能会避免类似问题。 6. **Unity3D的更新**:如果可能,尝试升级Unity3D到最新版本。新版本...

      CSS多浏览器兼容总结(个人经验)

      以下是一些针对CSS在不同浏览器间兼容性问题的解决方案和实践经验: 1. DOCTYPE的影响: 在HTML文档中,DOCTYPE声明会影响文档模式,进而影响CSS的处理方式。例如,不正确的DOCTYPE可能导致浏览器进入怪异模式,这...

      IE中JS调试工具

      标题中的“IE中JS调试工具”指的是在Internet Explorer浏览器中用于调试JavaScript...虽然现代浏览器如Chrome和Firefox也提供了强大的开发者工具,但了解和掌握多种工具的使用可以提升开发者解决问题的灵活性和效率。

      CSS_浏览器兼容

      本文将针对CSS在不同浏览器(特别是IE7、IE6与Firefox)下的兼容性问题进行探讨,并提供一系列实用技巧帮助开发者解决这些难题。 #### 二、基础知识 在深入了解具体的兼容性解决方案之前,我们先回顾一些基础知识:...

      IE6下出现双倍margin的解决方法

      1. **浏览器条件:** 必须是在IE6下,更高版本的IE或其他现代浏览器如Firefox、Chrome等则不受影响。 2. **元素样式条件:** - 元素设置了`float`属性,例如`float:left;`。 - 可选地,元素还设置了宽度,例如`...

    Global site tag (gtag.js) - Google Analytics