プロが教えるわが家の防犯対策術!

XHTML 1.0 Strictなのでtarget="_blank"の代用で外部jsに

function externalLinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload=externalLinks;

として読み込みリンクに<a rel="external" ..........>としています。

その他にhighslide.jsを使用しているのですがrel属性が重複しているためか
highslide.jsの動作は正常なのですがtarget="_blank"の代用の効果がありません。
rel属性が重ならないようにしたいのですが解決策はありますでしょうか?

highslide.jsのURLです↓
http://vikjavev.no/highslide/

A 回答 (1件)

別件でclass属性について


http://okwave.jp/qa3110635.html
class="external"と指定したタグに対して有効なスクリプトも
class="external attention" とすると動かなくなったりしますが、そういうことでしょうか。

もしそうなら、rel="external" と、1つだけ指定するか、
JavaScriptを、スペース区切りの指定に対応する様に自分で作り替えるか、
その制作者に作り直してもらう様にお願いするしかないと思います。

でなければTransitionalにしてtarget属性を使う、ということになるんじゃないでしょうか。

classだったら、HTMLの構造が変わってしまいますが
<div class="external"><div class="attention">~</div></div>と、無理矢理2つに分けることもできるんですけどねぇ。。。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!