【jQuery】外部リンクを別ウィンで開きたいー
じぶんの個人サイトで、外部リンクを別ウィンドウで開くのをjQueryでやりたいなーと思って、ちょっとぐぐった&エラーとか出たので自分用メモ。
ぐぐって、なんとなくこの辺(↓)を参照させていただくことに。
- jQueryを使って、外部サイトへのリンクだけ別ウィンドウで開く方法|AdDe – 静岡のデザイン制作会社アドテクニカのデザイナーブログ
- targetを使わず外部リンクを新しいウインドウで開く|KADOYAN.com
さて、残念ながらアタシにはどっちがイイとかよくわからないので、、、ひとまず前者のソースをお借りしてやってみます。
いつだかにダウンロードしてたjquery.js(v1.3.2)を設置し、
新規JSファイルに、上のエントリーのソース(これ↓)をコピペ、
$(document).ready( function () {
$(‘a[@href^="http"]‘).not(‘[@href*="www.sample.com"]‘).click(function(){
window.open(this.href, ”);
return false;});
});
「www.sample.com」をアタシの場合は「mayoneco.com」に変更し、保存。
HTML側に上記2つのJSファイルへのリンクつけまして、これでOK!
…のは・ず・が、、、
構文エラーだよ!とFirebugで下記のようなエラーが出てしまいました。
[Exception... "'Syntax error, unrecognized expression: [@href^=http://]‘ when calling method: [nsIDOMEventListener::handleEvent]” nsresult: “0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)” location: “
” data: no]
はいはい、何言ってるんでしょうかね?ふふふ…と、英語のエラーが出るとひとまず目を逸らしたくなるアタシですがw、調べたら、このへんが怪しそう!
- すなぶろっ! – スナメリ、jQueryを導入す。
- JQuery selector problem – ‘Syntax error, unrecognized expression’ fix :: James Allen’s Coldfusion and Internet Technology Blog
よくよく見てみると、、
The @ syntax is no longer supported in JQuery 1.3+.
So the simple fix is to just remove the @ and it’ll work
jQuery 1.3以降のバージョンでは@をつかう構文がサポート外ってコトみたいですな。
今回アタシが設置していたのはバージョン1.3.2。つまりサポート外。
“@”を消せばOK!って書いてあるので、よくわからないまま消したら本当にOKでしたw
JSの知識をきちんと入れてないまま使ってる上に、バージョンによる構文の違いなんてほとんど意識外なもので;、いい勉強になりましたぁぁ。
でもって、すぐ忘れるので今回は忘れないうちにメモメモ。