`
lhx1026
  • 浏览: 301263 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

解决Firefox不支持Js的InnerHtml问题

阅读更多

    由于W3C标准对Javascript语法进行了规范,即ECMAScript。而Firefox严格遵守ECMAScript规范,所以对 javascript一些属性和方法不支持(其实不能说是Firefox不支持,而是对不规范的写法不支持,符合标准的写法还是支持的),Firefox 希望程序设计师都采用规范的ECMAScript标准来书写代码,这样一些适应传统习惯的IE下的写法就会撞到很多的问题。

 

比如利用JS的InnerHtml属性动态替换广告代码的写法就在Firefox浏览器下不支持了。

原来的代码如下:

 

<span id="ad_1"></span>
<SPAN id="ad_11" style="visibility:hidden;">
<script language="JavaScript" src="/js/ad_1.js"></script>
</SPAN>
<SCRIPT>ad_1.innerHTML=ad_11.innerHTML;ad_11.innerHTML="";</SCRIPT>

 

上面的代码在IE、chrome等浏览器下可以被正确的执行替换,而在Firefox下就不能。其实解决方法也很简单,就让我们按照ECMAScript 规范写代码即可。上面的代码修正为下面的即可:

 

<span id="ad_1"></span>
<SPAN id="ad_11" style="visibility:hidden;">
<script language="JavaScript" src="/js/ad_1.js"></script>
</SPAN>
<SCRIPT>document.getElementById("ad_1").innerHTML=document.getElementById("ad_11").innerHTML;document.getElementById("ad_11").innerHTML="";</SCRIPT>

 

不要直接使用DIV或SPAN的id,而是通过 document.getElementById("div_id") 来执行替换即可。另 外,Firefox是不支持 innerTEXT 属性的。

分享到:
评论

相关推荐

    js在IE与firefox的差异集锦

    firefox支持innerHTML但却不支持innerText,它支持textContent来实现innerText,不过默认把多余的空格也保留了。如果不用textContent,如果字符串里面不包含HTML代码也可以用innerHTML代替。 2.禁止选取网页内容: ...

    innerHTML在Mozilla Firefox和Opera下执行的一个特例情况。

    包括在Opera下执行的情况也是与Firefox下相同的,你可以尝试在Opera下运行就明白了。 如果能够得到我们预期的效果呢?我尝试着用__defineGetter__的方法在Mozilla下得到所有的innerHTML,在这里却给了我一些提示。...

    记录几个javascript有关的小细节

    Firefox 支持 innerHTML 属性却不支持 innerText,如果不想用innerHTML 替代,可以用如下代码 由于Firefox不支持document.all,所以考虑兼容的时候获取对象通常用 document.getelementbyid(‘yourid’)....

    Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法

    [removed] ”trone”&gt; &lt;/tr&gt; 在IE中,有时候会出现”未知的运行时错误(unknown runtime error)”,而在firefox里不会。 这主要是IE在对innerHTML进行写操作的时候会检查element是否具备做为这些内容中html对象容器的...

    innerHTML动态添加html代码和脚本兼容多个浏览器

    症状:给某个元素的 innerHTML 设置值时,...对于 Firefox 和Opera,在插入时刻,innerHTML 的所属节点不可以在 DOM 树中。 根据上面结论,给出通用的设置 innerHTML 方法: 代码如下: /* * 描述:跨浏览器的设置 in

    让innerHTML的脚本也可以运行起来

    最近在脑子一直在想pjblog重构的... ,但是这招对于firefox不灵~~ 后来找了一些资料发现 firefox 把对象重新 append 或者 insertBefore 一次就可以执行里面的脚本了. 程序代码 var fillHTML = function 

    使用JS操作页面表格,元素的一些技巧

    ie 、firefox以及其它浏览器对于 table 标签的操作都各不相同,在ie中不允许对table和tr的innerHTML赋值,使用js增加一个tr时,使用appendChile方法也不管用。下面是我就三种浏览器测试的结果:  insertRow IE6...

    IE 下的只读 innerHTML

    今天做东西遇到一个问题,我试图动态为一个表格添加多行数据,先定义了一个table: 代码如下: &lt;table&gt; &lt;thead&gt; &lt;/thead&gt; ”filelist”&gt; &lt;/tbody&gt; &lt;/table&gt; 然后在JavaScript 中这样操作... } 在FireFox 下这么干是没有

    JavaScript 实例 精粹 整理

    包括:11种用javascript做的刷新按钮的方法、40种Javascript中常用的使用小技巧、Javascript的IE和Firefox兼容性汇编、JavaScript函数大全、JavaScript实际应用:innerHTMl和确认提示的使用、 CSS的常用技巧、IP地址...

    JS 动态获取节点代码innerHTML分析 [IE,FF]

    在IE 环境下 赋值类型为对象时 innerHTML 获取不到其改变,在FireFox环境下 .属性 方式获取不到其改变。

    JS实现HTML标签转义及反转义

    注:火狐不支持innerText,需要使用 textContent 属性,而IE早期版本不支持此属性,为了同时兼容IE及火狐,需要进行判断操作. 因为innerText(textContent)会获取纯文本内容,忽略html节点标签,而innerHTML会显示...

    inner-text:基于innerHTML的innerText函数,带有替换项

    Firefox没有。 有多种方法可以实现innerText功能。 您可以获取一个选择window.getSelection() ,选择所有元素selection.selectAllChildren(el)并调用selection.toString() 。 问题在于,它基于用户的选择,您可能将...

    JsDom 编程小结

    FF(FireFox)不支持InnerText,用textContent代替 2.几乎所有DOM元素都有innerText、innerHTML属性(注意大小写),分别是元素标签内内容的文本表示形式和HTML源代码,这两个属性是可读可写的。 动态创建元素的时候...

    JavaScript详解(第2版)

     2.5.1 Firefox   2.5.2 在Internet Explorer 8中调试   2.5.3 [removed]URL 协议   2.6 JavaScript与旧浏览器或受限的浏览器   2.7 应知应会   练习   第3章 数据类型、字面量和变量   3.1...

    兼容IE,firefox的获取节点的文本值的javascript代码

    我们知道通过浏览器自带的innerHTML属性能够获取节点的所包含的字符串的值,比如有如下节点: 代码如下: ”test”&gt;&lt;strong&gt;i’m strong&lt;/strong&gt;&lt;/div&gt; 通过 代码如下: var obj=document.getElementById(“test”);...

    js有关元素内容操作小结

    1[removed] 这个大家一定都很熟悉,可读可写,修改元素内容相当... 遗憾的是,firefox目前还不支持(我当前用firefox8),其他浏览器支持的还不错,在ff中可以用innerHTML来模拟实现。 3.documentFragment DocumentF

    JS清除选择内容的方法

    本文实例讲述了JS清除选择内容的方法。分享给大家供大家参考。具体分析如下: 今天在做一个DIV拖动的效果,发现在拖动的时候会选中页面中的文本,于是找了一下JS清除选择的内容的相关信息。 在得到的结果中发现: 在...

    javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)

    方法一: 用的浏览器内部转换器实现转换,方法是动态创建一个容器标签元素,如DIV,将要转换的字符串设置为这个元素的innerText(ie支持)||textContent(火狐支持),然后返回这个元素的innerHTML,即得到经过HTML编码...

    JS分页效果JS分页效果

    Supported in Internet Explorer, Mozilla Firefox */ function showPages(name) { //初始化属性 this.name = name; //对象名称 this.page = 1; //当前页数 this.pageCount = 1; //总页数 this.argName = 'page...

    js setattribute批量设置css样式

    firefox等可以使用 var dom=document.getElementById(“name”); dom.setAttribute(“style”,”width:10px;height:10px;border:solid 1px red;”) ; IE中则必须使用style.cssText var dom=document.getElementById...

Global site tag (gtag.js) - Google Analytics