《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」時錯誤》
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31