「jQueryで外部リンクを自動別窓表示」と「AddClips」
- 投稿日 : 2007-07-17, 01:28
- 最終更新日時 : 2010-12-21 17:48:00(履歴)
- タグ(jQuery)
- カテゴリ(Javascript)
- 記し人(luvsic)[PDF]
- 閲覧数(1697)
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の解析結果閲覧は、はてなユーザのみなのだろう。いろいろなサービスと提携するのはとてもよいと思うけれども、せめて自社分だけでも確保してほしかったな・・・ とはてなアカウントの無い俺は思ってしまう。
No comments yet