完璧な偽のjQuery Eventオブジェクトを作成する方法

RL:

私はウェブサイトのためのテストを自動化していると私はIEツー限ら-especiallyではJavaScriptを使用して、正しくトリガではなく、カント、いくつかのイベントがあります。(私はセレンを使用していますが、javascriptのは私の最後の希望であるので、他のすべてのオプションが機能しませんでした)

イベントの関数はjQueryのイベントオブジェクトのフィールドの多くを使用しているようだ、私は、次の試してみた公式jQueryのドキュメントが、ほとんどのフィールドは、これはあなたが何をするかではないので、それは彼らを(記入する方法を示していない名前を示しながら、通常はそれが、私の場合にはそれがあります)

私の質問は以下の通りであります:

偽のため、マウスイベントで何をして、私はフィールドを埋めるんどのように(どのようにどのように私は、これらの値にするかのよう)を使用して、EventオブジェクトのjQuery.Event("event type",{param1:value1,param2:value2,...})(これを行うには、より効率的がある場合、または別の方法を)

このイベントオブジェクトには、一緒に使用されます element.trigger('eventname',EventObject)

デブロッカー:

あなたはこのjQueryのドキュメント読みましたトリガイベントハンドラの

抜粋:

どのようにしていない場合は.trigger、ネイティブブラウザのイベントを模倣することができますか()?

ネイティブブラウザのイベントをトリガするためには、他のすべてのブラウザで<IE9とdocument.createEventためdocument.createEventObjectを使用する必要があります。これら2つのAPIを使用して、プログラム的に、誰かが実際にファイルの入力ボックスをクリックしたかのように正確に動作イベントを作成することができます。デフォルトのアクションが起こるのだろう、とブラウズ、ファイルダイアログが表示されます。

jQueryのUIチームが作成したjquery.simulate.jsを彼らの自動テストで使用するためにネイティブブラウザのイベントをトリガー簡単にするために。その使用はjQueryのトリガーをモデルにしています。

次のように基本的には、全体のものが要約することができます。

function Settings() {
  this.bubbles = true;
  this.cancelable = true;
  this.view = window;
  this.screenX = 0;
  this.screenY = 0;
  this.clientX = 1;
  this.clientY = 1;
  this.ctrlKey = false;
  this.altKey = false;
  this.shiftKey = false;
  this.metaKey = false;
  this.button = 0; /* Which mouse button was pressed */
  this.relatedTarget = null;
  return this;
}

function simulateMouseEvent(type, target, s) {
  var e = document.createEvent("MouseEvents");
  e.initMouseEvent(type, s.bubbles, s.cancelable, s.view, 0, s.screenX, s.screenY, s.clientX, s.clientY, s.ctrlKey, s.altKey, s.shiftKey, s.metaKey, s.button, s.relatedTarget);
  target.dispatchEvent(e);
}

var settings = new Settings, target = document.getElementById('myButton');

/* Try with something like this: */
simulateMouseEvent('mousedown', target, settings);
simulateMouseEvent('mouseup', target, settings);
simulateMouseEvent('click', target, settings);

出典:https://github.com/jquery/jquery-simulate/blob/master/jquery.simulate.js

完全なパラメータのリストがここで説明されていますMouseEvent.initMouseEvent()

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=33470&siteId=1