网页JS延迟最后加载及解决Firefox不支持Js的InnerHtml问题

网页JS延迟最后加载及解决Firefox不支持Js的InnerHtml问题

很多网友遇到加入下面这段代码后在IE下能正常加载js,但是火狐下就不行,其实问题出现在InnerHtml。

<span id=""></span>


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

本文以网页JS广告加载为例,讲述了网页如何把JS广告放到最后加载以提速页面的响应时间。

常见代码如下:

<span id="adtop"></span>
<SPAN id="ad_top" style="visibility:hidden;">
<script language="JavaScript">xxxxxx</script>
</SPAN>
<SCRIPT>adtop.innerHTML=ad_top.innerHTML;ad_top.innerHTML="";</SCRIPT>


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

<span id="adtop"></span>
<SPAN id="ad_top" style="visibility:hidden;">
<script language="JavaScript">xxxxxx</script>
</SPAN>
<SCRIPT>document.getElementById("adtop").innerHTML=document.getElementById("ad_top").innerHTML;document.getElementById("ad_top").innerHTML="";</SCRIPT>



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

下面是兼容IE、chrome、Firefox的代码,使用方法详细说明如下:

Span标签:
<span id="adtop">Loading...</span>  //在需要插入JS的地方插入该标签代码,当然,那个Loading...你可以换成自己喜欢的小图片.看起来很有AJAX效果呢.

JS代码:
<SPAN id="ad_top" style="visibility:hidden;">
<script language="JavaScript">xxxxxx</script>
</SPAN>
<SCRIPT>document.getElementById("adtop").innerHTML=document.getElementById("ad_top").innerHTML;document.getElementById("ad_top").innerHTML="";</SCRIPT> //页面最底端插入的代码


本文最后更新于 2012-03-22 15:00:28 并被添加「ie js firefox」标签,已有 7649 位童鞋阅读过。
本文作者:未来往事
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处

相关文章

此处评论已关闭