「jQueryで外部リンクを自動別窓表示」と「AddClips」

jQueryで、外部リンクに片っ端から「_blank」を自動で付けてると、onClickで開いてる外部リンクが2重に開く問題。idやらclassやらを付けて判定させてもいいのだけど、書き方が判らん。

とりあえず外部リンクの自動判定Javascriptはこんな感じ。



/*** another location use _target ***/

$(document).ready( function () {
$('a[@href^="http"]').not('[@href^="http://luvsic.net/"]').click(function(){
window.open(this.href, '');
return false;
});
$('a[@href^="http"]').not('[@href^="http://luvsic.net/"]').addClass("exLink");
});

「http://luvsic.net/」で判定させてる。
このコードのネタ元はjQueryでtarget属性を使わずに外部リンクを別窓表示 - Emotional Web。a要素の先頭文字を判別して、自分のドメインならそのまま。他ドメインならwindow.openで開く、ということらしい。

というわけでonClickで2重に窓が開く問題の解決方法。小一時間悩んだ結果、AddClipsのコードだとこんな感じ。

<!-- AddClips Code START -->
<span onclick="AddClipsUrl = '<%itemlink%>'; AddClipsTitle = '<%title%>'; return AddClipsWindow(this);"><img src="http://img.addclips.org/addclips_1.gif" width="141" height="16" alt="ブックマークサービスを選択する" rel="nofollow" style="cursor:pointer" /></a><script type="text/javascript">var AddClipsId = '1A75E89392CA6';</script><script type="text/javascript" src="http://www.addclips.org/addclips.js"></script>
<!-- AddClips Code END -->

aタグをやめてspanタグに変えた、うーん我ながら短絡的でひどい。けどどうせjavascript使えなかったらロケーションやらを拾えないので機能しないんだから、そもそもa要素であるほうがいけないんじゃないかという結論にしておこ・・・。

しかしなぜAddClipsの解析結果閲覧は、はてなユーザのみなのだろう。いろいろなサービスと提携するのはとてもよいと思うけれども、せめて自社分だけでも確保してほしかったな・・・ とはてなアカウントの無い俺は思ってしまう。

参考URL

Skooler Records

No comments yet

%3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%22%20%76%61%6c%75%65%3d%22%62%32%38%65%35%66%33%33%33%30%62%34%39%39%32%66%36%39%35%39%38%34%34%31%34%30%39%30%34%62%65%65%22%3e %3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%5f%68%61%73%68%22%20%76%61%6c%75%65%3d%22%62%31%36%39%38%32%65%38%62%39%64%64%66%61%36%62%31%65%30%37%34%38%32%39%36%61%30%35%65%61%39%62%22%3e
© 2006 – 2014 by Luvsic. Some rights reserved.