アキラのITメモ:targetを使わないで新しいウインドウを開く
IT関係、技術関係のメモです。
targetを使わないで新しいウインドウを開く
昔はよくリンク先を新しいウインドウを開くのにtarget属性なんかが使われていたものですが、(X)HTML Strictでは廃止される方向になり、HTML4.01 Strict、XHTML1.0 Strict、XHTML1.1なんかでページを作りたいときにはどうやれば良いのやらと思ってました。targetそのものを使わないので特に気にしてなかったのですが、知人のサイト作成を手伝った時に必要になったのでざっと調べてみました。
まず、targetを使う方法はおなじみの以下の方法で出来ます。
<a href="test.html" target="_blank">test</a>
JavaScriptを使えば以下のように書くことで同等の事ができます。ただし、JavaScriptが使えない環境では新しいウインドウが開かずにリンク先に飛びます。
<a href="test.html" onclick="window.open('test.html'); return false;">
test</a>
これだけだとあまりネタ的に弱いので他に調べてみると、簡単にウインドウを開いてリンク先に飛ばすように出来るスクリプトを見つけました。
var PopupWindow = Class.create();
PopupWindow.prototype = {
initialize: function(className, parentElement) {
var elements
= document.getElementsByClassName(className, parentElement);
for (var i = 0, len = elements.length; i < len; i++) {
Event.observe(elements[i], 'click',
this.addPopupEvent.bindAsEventListener(this));
Event.observe(elements[i], 'keypress',
this.addPopupEvent.bindAsEventListener(this));
}
},
addPopupEvent: function(event) {
var element = Event.element(event);
var link = element.getAttribute('href');
window.open(link);
Event.stop(event);
}
};
Event.observe(window, 'load', function () {
new PopupWindow('popup');
});
このスクリプトを読ませておくと、こんな感じで書くだけで良いみたいです。スマートになりますね。。
<a class="popup" href="test.html">test</a>
JavaScriptはあまり分かってないので、もうちょっと勉強したいです。Ajaxとかも使いたいし、GoogleMapsAPIなどのWebサービスAPIを使いこなしたいし。。時間あるかな。
カテゴリ:
JavaScript
投稿日: 2007年01月07日 16:06
Trackback URL: http://akira-site.net/cgi-bin/mt/mt-tb.cgi/414
Trackback URL: http://akira-site.net/cgi-bin/mt/mt-tb.cgi/414
コメント
コメントを投稿
カテゴリ「JavaScript」内の記事
サイト内検索
カテゴリ
- Linux
- Linux Tips [14]
- Linux ソフトウェア [3]
- Web技術
- (X)HTML/CSS [4]
- JavaScript [1]
- MovableType [7]
- その他 [3]
- 各種API [3]
- 各種ツール [4]
- Windows
- Win Tips [3]
- Win ソフトウェア [6]
- コネタ [7]
- プログラミング
- 機器 [4]