2011-06-25 20 views
3

dispatchEventを使用してクリックをシミュレートするコードがありますが、Chromeでも同じコードが正常に機能しますが、Firefoxでは動作しません。Firefox 5 dispatchEventが動作しない

var evt = document.createEvent("MouseEvents"); 
evt.initEvent("click",true,true); 
jQuery("a:contains(Next)")[0].dispatchEvent(evt); 

私は別のページやChromeの細かいページのロードをロードしますが、私はFirebugの中でこのコードを実行したり、私はブックマークレットとしてそれを実行しても、時にFirefoxが絶対に何もしないリンクをクリックしています:ここではコードです。私はまた、MDCドキュメントに示されているようにすべてのオプションを設定することで、長い形式のイベントを初期化しようとしましたが、何もしません。私はここで間違って何をしているのですか?

答えて

3

あなたのイベントがマウスイベントになりそうだとして、あなたはむしろ、この例のように、マウスイベントを使用してみてください可能性があります

var oEvt = (document.createEvent)? document.createEvent('MouseEvents') : document.createEventObject();  
     // W3C 
     if (oEvt.initMouseEvent) 
      oEvt.initMouseEvent(
       /* type*/   'mouseup', 
       /* bubble*/   true, 
       /* cancel*/   true, 
       /* AbstractView*/  window, 
       /* detail */  10, 
       /* screenX */  20, 
       /* screenY */  30, 
       /* clientX */  40, 
       /* clientY */  50, 
       /* ctrlKey */  false, 
       /* altKey */  false, 
       /* shiftKey */  true, 
       /* metaKey */  false, 
       /* button */  0, 
       /* relatedTarget*/ null) ; 
     // MSIE 
     else { 
       var oEvt = document.createEventObject(); 
       oEvt.detail = 10; 
       oEvt.screenX = 20; 
       oEvt.screenY = 30; 
       oEvt.clientX = 40; 
       oEvt.clientY = 50; 
       oEvt.ctrlKey = false; 
       oEvt.altKey = false; 
       oEvt.shiftKey = true; 
       oEvt.metaKey = false; 
       oEvt.button = 0; 
       oEvt.relatedTarget = null; 
     } 

は私もfiring DOM eventsについてフランス語でチュートリアルを書いたW3C Mouse event types

を参照してください。 ;私はそれを翻訳するのは簡単だと思います。

+0

まだ同じことです。私は 'dispatchEvent'の戻り値として' true'を取得し、何も起こりません。 – davidk01

+0

@david:あなたはフランス語を読むことができない場合でも、[最後の章](http://hornetbzz.developpez.com/tutoriels/javascript/dom/#L5-E-1-C)を読むことができます。 – hornetbzz

+0

@ david:thx。 bwnでは、[ベスト・リンク](http://www.howtocreate.co.uk/tutorials/javascript/domevents)DOMイベントについて知っています。 – hornetbzz

関連する問題