Onclickを用いないポップアップJS
Wednesday, Jul 26, 2006 - 01:07 +09:00
単純なモノほど、奥が深い。一般的にポップアップ・ウィンドウは、
<a href="#" onclick="winOpen('./popup.html')">
...みたいな感じで起動するんですが、ふと思いたってonclickの代わりにclassでポップアップさせるよう改造してみました。これでどうなるかって言うと、
<a href="./popup.html" class="popup">
...みたいな感じで、まんま普通のHTMLになります ...とりあえず、こんな感じ。
サンプル
- HTML
-
<a href="aaa.com" class="popup">ポップアップ</a>
- Javacript
-
window.onload=autoPOP; function autoPOP() { var x = document.getElementsByTagName('a'); for (var i=0;i<x.length;i++) { if (x[i].getAttribute('className') == 'popup' || x[i].getAttribute('class') == 'popup') { x[i].onclick = function () { return winOpen(this.href) } x[i].title += '(Popup)'; } } }; function winOpen(url) { window.open( url, 'popup', 'width=520,height=340,scrollbars=0,resizable=1' ); return false; };
感想
なんとなく作ってみたけど、なんかいろいろ応用が効きそうです。winOpen()だけでも使えるし。getAttribute()でページ内を走査する部分とか、onloadイベントにする部分とか、onclickイベントを付与する部分とか。
これが一番興味深いんだけど... トリガをclassにしたことで、対象へのピンポイントなCSS指定が可能となる。この場合だと、たとえば<a>によるリンクの中でもポップアップ・リンクだけにそれと判るアイコンを付けたりとか。
posted in Javascript Trackback (0)
Trackback
- このエントリーのトラックバックURL
- http://rospear.info/other/mt-tb.cgi/200