• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:/*@cc_on@*/)

条件付きコンパイルステートメントを使用したaddEventListenerとattachEventの切り替え

このQ&Aのポイント
  • 条件付きコンパイルステートメントを使用してaddEventListenerとattachEventを切り替える方法について教えてください。
  • IEで動作確認をすると、「サポートされていないオブジェクトまたは、メソッドです」というエラーが表示されます。
  • if文で書き換えると、「value」がNULLまたはオブジェクトではないというエラーが表示されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

どこかで見たような… と思ったら私の回答のようですね。 >教えていただいたソース>selectメニューに応じてdivを変換する ><!--/*@cc_on @*/      ↓ <!-- /*@cc_on@*/ (改行のあるなしで変わります) 回答をもう一度ご確認ください。  http://okwave.jp/qa/q6524472.html

momohiyopapa
質問者

お礼

fujillin先生!!ありがとうございます。これでいけました。色々と試行錯誤していたのがウソみたいに動作しました。ほんとうにありがとうございます。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

#1です。 某所で、このスクリプトだと複数回initを呼び出すと都合が悪くなることを指摘されたのを思い出しました。(失念してました) なので、応急処置。(init部分を以下にいれかえ) changer.init = function(id, ids){  var sel = document.getElementById(id);  if(!sel || sel.nodeName != "SELECT") return;  this.target = ids.split(",");  this.set(sel.value);  sel. /*@if(1)attachEvent('on' + @else@*/addEventListener(/*@end@*/ 'change', changer, false);  changer.init = new Function; } 本来なら複数の呼び出しに対応するべきですが、単に2回目以降を無効にしただけというお粗末な「応急処置」です。 お粗末だけれど、無いよりはよいだろうということで・・・

momohiyopapa
質問者

お礼

fujillin先生ありがとうございます。前述の改行の処理で上手く動作してくれましたので、この応急処置の方法は知識として私のEvernote行きとなりました。前回に引き続きご回答いただき、ありがとうございました。

関連するQ&A