onClick では、左クリックのみ対象ですが、右クリックが必要な場合は、 onMousedown を使うといいと思います。変数や関数は window オブジェクト に lbox20100211 というプロパティを作成して登録しています。保存される オブジェクトは、lbox20100211.cur にセットされます。
// window オブジェクトにグローバルな名前空間を作成 // ※ lbox20100211 window.lbox20100211 = {}; // クリック時のイベント // lbox20100211.cur に最後にクリックされたフィールドを保存する lbox20100211.clickEvent = function(e) { var userAgent = window.navigator.userAgent.toLowerCase(); // クリックされたフィールドを保存 if (userAgent.indexOf("msie") > -1) { window.lbox20100211.cur = window.event.srcElement; } else { window.lbox20100211.cur = e.currentTarget; } } // ページロード時のイベント lbox20100211.registClickEvent = function() { var userAgent = window.navigator.userAgent.toLowerCase(); var obj = document.getElementsByTagName("INPUT"); var len = obj.length; var i,str; // INPUT 要素を全て取得 for( i = 0; i < len; i++ ) { // type が text のみ取得 str = obj[i].getAttribute( "type" ) if ( str == null ) { str = "TEXT"; } if ( str.toUpperCase() == "TEXT" ) { if (userAgent.indexOf("msie") > -1) { obj[i].attachEvent('onclick', lbox20100211.clickEvent); } else { obj[i].addEventListener('click', lbox20100211.clickEvent, false); } } } } // ページロードが終了した時に実行する処理を登録 if (window.attachEvent){ window.attachEvent('onload', lbox20100211.registClickEvent); } else { window.addEventListener('load', lbox20100211.registClickEvent, false); }
タグ:javascript
|
【JavaScript DOMの最新記事】
- IFRAME 内に外部の javascript を読み込んで画面を作成する / document.write での構築
- JavaScript : setTimeout の第一引数の正しい書き方。
- JavaScript でクリックの代替( 古くは dispatchEvent で呼び出し )、現在は jQuery の click() ではリンクの URL を開く事はでき無いので、$("セレクタ")..
- JavaScript : リンクから _blank で開いたページを JavaScript で閉じる場合の動作テスト
- JavaScript : ブラウザの表示を半透明で暗くする方法( scrollHeight で高さ決定 )
- JavaScript DOM と jQuery : エレメントの参照
- JavaScript : リンクのテキストの取得( Chrome、Firefox、IE / textContent、innerText、text、replace、jQuery )
- 動的に作成された IFRAME の キャラクタセットのブラウザ別の違い
- ローカル記憶域 : window.localStorage
- JavaScript : zIndex の最大値と思われる 0x7FFFFFFF を各ブラウザでテストしました
- JavaSctipt : ユーザ用(名前空間付き)イベント追加メソッドの作成
- JavaScript : クリックした要素の位置を計算して、近くにウインドウを開く