天天看點

解決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 屬性的。

繼續閱讀