在XHTML 1.0 Strict和XHTML 1.1中,a元素的target屬性被拿掉了,似乎是委員會的大老們覺得連結的開啟目標不該由文件本身提供,或是說使用者應該可以自己決定要怎麼打開它,所以現在是用rel和rev屬性來註明這個文件連結,但是不做任何具體影響。你可以利用
想要實現原本的功能,可以自己定義DTD或是用JavaScript。實作其實很簡單,核心如下:
另外,我想這個JavaScript應該是不相容於IE的,不過沒關係,反正IE不支援XHTML,自然不用擔心這種XHTML才有的問題。
rel="external"
來註明這是個外部文件。想要實現原本的功能,可以自己定義DTD或是用JavaScript。實作其實很簡單,核心如下:
var links = document.getElementsByTagName( 'a' ); for( var i = 0; links[i]; ++i ) { if( links[i].getAttribute( 'rel' ) == 'external' ) { links[i].addEventListener( 'click', function( e ) { e.preventDefault(); // IMPORTANT! window.open( this.getAttribute( 'href' ), '_blank' ); }, false ); } }Event的preventDefault是為了要阻止元素的預設行為,因為<a>在click之後一定會打開連結。
另外,我想這個JavaScript應該是不相容於IE的,不過沒關係,反正IE不支援XHTML,自然不用擔心這種XHTML才有的問題。
[Modified - 2008/02/26] Use W3C style.
[Modified - 2008/07/06] Improved loop terminate condition.
[Modified - 2008/07/06] Improved loop terminate condition.
沒有留言:
張貼留言