Greasy Fork is available in English.
Simulate mouse events
Ce script ne devrait pas être installé directement. C'est une librairie créée pour d'autres scripts. Elle doit être inclus avec la commande // @require https://update.greasyfork.org/scripts/21750/138530/simulate_event.js
//// ==UserScript==
// @name simulate_event
// @namespace https://raw.githubusercontent.com/sergeych/jsnippets/master/simulate_event.js
// ==/UserScript==
/**
* $('#foo').simulate('click'[,options]); // => fires "click" event on an element with id=foo
* Prototype's idea, modified to run under jQuery
*
* - options: optional object to fine-tune event properties - pointerX, pointerY, ctrlKey, etc.
*
**/
(function(){
var eventMatchers = {
'HTMLEvents': /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,
'MouseEvents': /^(?:click|mouse(?:down|up|over|move|out))$/
};
var defaultOptions = {
pointerX: 0,
pointerY: 0,
button: 0,
ctrlKey: false,
altKey: false,
shiftKey: false,
metaKey: false,
bubbles: true,
cancelable: true
};
jQuery.fn.simulate = function(eventName) {
var element = this[0];
var options = $.extend(true, defaultOptions, arguments[2] || { });
var oEvent, eventType = null;
for (var name in eventMatchers) {
if (eventMatchers[name].test(eventName)) { eventType = name; break; }
}
if (!eventType)
throw new SyntaxError('Only HTMLEvents and MouseEvents interfaces are supported');
if (document.createEvent) {
oEvent = document.createEvent(eventType);
if (eventType == 'HTMLEvents') {
oEvent.initEvent(eventName, options.bubbles, options.cancelable);
}
else {
oEvent.initMouseEvent(eventName, options.bubbles, options.cancelable, document.defaultView,
options.button, options.pointerX, options.pointerY, options.pointerX, options.pointerY,
options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, element);
}
element.dispatchEvent(oEvent);
}
else {
options.clientX = options.pointerX;
options.clientY = options.pointerY;
oEvent = $.extend(document.createEventObject(), options);
element.fireEvent('on' + eventName, oEvent);
}
return element;
};
})();