首頁 > web前端 > css教學 > 主體

IE下href 的 BUG問題_經驗交流

WBOY
發布: 2016-05-16 12:04:03
原創
1627 人瀏覽過
複製程式碼 程式碼如下:


《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 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; //在新的 href 之前加入額外的空格
    };

    詳細:《Internet Explorer 可能會重置Anchor 的innerHTML分配新的「href」時錯誤》

  • 相關標籤:
    來源:php.cn
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板