いちおうIEにも対応。
フォームのボタンだけでなく、 <a href="boo.html" id="foo" onclick="woo();"></a> みたいなアンカータグにも使えてありがたい。 (Firefoxだと使えないっていう人がいたけどもしかしてonclick記述じゃダメでイベント登録ではOKとかそういうことなんだろうか…?)


function myclick(id){
  // 強制的にイベントを呼び出す
  var elm = document.getElementById(id);
  if(elm.fireEvent){ // for IE
    elm.fireEvent("onclick");
  }else{ // for Firefox, Chrome, Safari
    var evt = document.createEvent("MouseEvents");
    evt.initEvent("click", false, true);
    elm.dispatchEvent(evt);
  }
}

White Tigers 2010.7 で使った。

Ref. JavaScriptの動かないコード (中級編) clickイベントを強制的に発生させたい (fireEvent/createEventの使い方) - 主に言語とシステム開発に関して

tags: JavaScript zurazure

Posted by NI-Lab. (@nilab)