2011-07-18 20 views
0

javascriptを使用してページにイベントハンドラを追加しようとしています。私が試したことは次のように、javascriptを使用したイベントハンドラの追加がIEで動作しない

var span=document.getElementById("WD67"); 
span.setAttribute("onchange","alert('hello');"); 

である。しかし、イベントハンドラ属性が追加されるのにページがIEで見たときに、正常に動作するが、Firefoxでは、発生しません。 IEを認識させるにはどうすればよいですか?

答えて

1

属性を使用しないでください。イベントハンドラを追加する最も良い方法は、addEventListener(すべての最新のブラウザ)またはattachEvent(IE < 9)を使用しています。さらに、ハンドラ関数リファレンス(関数内でalert('hello')を囲む)を使用します。

要素にハンドラを追加するcrossbrowser機能:this jsfiddle

+0

こんにちは、これは実際にはエラーを投げます - 引数が足りません。同じことがあなたがあまりにも言及したサイトで試してみるときに起こります。私は識別することができません。確認していただけますか? – arunondeck

+0

あなたはfirefoxを実行していると思いますか? 'obj.addEventListener(htype、fn、true);'はそのトリックをそこで行うべきです。 http://jsfiddle.net/PRAd3/ – KooiInc

+0

私はそれを試しましたが、FirefoxとIEの両方でエラーがスローされます。 – arunondeck

3
var span = document.getElementById("WD67"); 
span.onchange = function(){ alert('hello'); }; 
+0

感謝しますが、これは動作していない:

function addHandler(obj,htype,fn){ if (obj.addEventListener){ obj.addEventListener(htype, fn); } else { obj.attachEvent('on'+htype,fn); } } // usage var mySpan=document.getElementById("WD67"); addHandler(mySpan,'change',function(){alert('hello')}); 

も参照してください。 – arunondeck

+0

http://jsfiddle.net/Paulpro/2MM9H/それはあなたのために働きますか?どのバージョンのIEを使用していますか? – Paulpro

+0

はい、それは..私のテストページの昨日の妨げになっていたバグでした。ありがとう。 – arunondeck

関連する問題