睡蓮‧池水間

Guest
2012-May-20  
0 位會員和 11 位訪客在線上

文章 :: 語言集

IE 下 href 的 BUG

懌飛
 
http://www.planabc.net/2008/11/06/ie-href-bug/ 
在瀏覽器 IE6 、IE7、Firefox2+、Firefpx3+、Opera9.6+、Safari3.1+中測試以下代碼(Demo):

<div id="test">
    <a href="#"> test </a>
</div>
<div id="result"></div>

<script type="text/javascript">
(function(){
    var test = document.getElementById('test');
    alert(test.innerHTML);

    var result =  document.getElementById('result');
    result.innerHTML = test.innerHTML;
    alert(result.innerHTML)
})();
</script>

結果會發現,在 IE6、IE7 瀏覽器中第二次彈出的 result.innerHTML 中的 A 元素的 href 值成為了絕對路徑。

其實先人們早遇到這些問題(感謝玉伯提供的資料):

* 《getAttribute(“HREF”) is always absolute》
* 《getAttribute href bug》

在上面的文章中已提及了處理方案,就是在 IE 下使用 getAttribute( ‘href’ , 2 ) 方法。 Microsoft 給此方法擴展了第二個參數,可設置為 0、1、2,如果設置為 2 ,則返回屬性原始值。

腳本修正為:

(function(){
    var test = document.getElementById('test');
    alert(test.innerHTML);

    var result =  document.getElementById('result');
    result.innerHTML = test.innerHTML;

    if(/*@cc_on!@*/0 ) { //if ie
        var links1 = test.getElementsByTagName('a');
        var links2 = result.getElementsByTagName('a');
        for(var i = 0, len = links1.length; i < len; ++i ) {
            links2[i].href = links1[i].getAttribute('href', 2);
        }
    }

    alert(result.innerHTML);

})();

在尋找此問題的過程中還搜索到Hedger Wang發現的一個有趣的 BUG 問題:在 IE 中當重新設置新的 href 屬性值時,如果鏈接文字含有 “http://” 或 “@” ,則其 innerHTML 將顯示不正確,顯示成設置的 href 屬性。

解決方法(sHref 為要設置的 href 新值):

sHref = 'http://www.hedgerwow.com';
var isMSIE = /*@cc_on!@*/false;
if( isMSIE ){
    sHref = ' ' + sHref; //add extra space before the new href
};

詳細:《Internet Explorer might reset Anchor’s innerHTML incorrectly when a new “href” is assigned》

    «« 工具集轉移 網站重構到底是什麼 »»    

引用

  • 文章地址: http://waterlily-lsl.com/modules/article/view.article.php/c2/98
  • 引用地址: http://waterlily-lsl.com/modules/article/trackback.php/98

評分

10
9
8
7
6
5
4
3
2
1


 

API: RSS | RDF | ATOM

回覆及設定

    關閉


 

最 新 發 表 及 資 訊 區

此為池水間 banner ,需要安裝 Adobe Flash Player 才能觀看內容。

最新留言

最新留言:2012-Jan-6 11:13am
留言編號:76
留言者: wuji888
網主回覆:
總留言數: 71

前往萍踪留影

造訪統計

今天:169
昨天:751
本週:169
本月:10185
總計:431422
平均:311

連結

Powered By XOOPS
Valid XHTML 1.1
Valid CSS 3
除另有註明外,本站內容均採用 Creative Commons 姓名標示-非商業性-相同方式分享 3.0 授權條款授權
登 入