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

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

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



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

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

「https://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%31%64%34%30%64%39%64%37%31%30%35%30%39%37%61%36%35%61%63%34%61%38%62%36%33%31%64%33%39%39%32%31%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%66%66%66%35%36%37%65%62%34%64%36%37%31%64%66%61%62%62%34%30%63%36%65%36%64%64%38%61%66%62%64%30%22%3e
© 2006 – 2021 by Luvsic. Some rights reserved.