(প্রোটোটাইপ.জেএসবিহীন এটিকে কাজ করার জন্য পরিবর্তিত সংস্করণ)
function simulate(element, eventName)
{
var options = extend(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;
var evt = document.createEventObject();
oEvent = extend(evt, options);
element.fireEvent('on' + eventName, oEvent);
}
return element;
}
function extend(destination, source) {
for (var property in source)
destination[property] = source[property];
return destination;
}
var eventMatchers = {
'HTMLEvents': /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,
'MouseEvents': /^(?:click|dblclick|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
}
আপনি এটি এর মতো ব্যবহার করতে পারেন:
simulate(document.getElementById("btn"), "click");
নোট করুন যে তৃতীয় প্যারামিটার হিসাবে আপনি 'বিকল্পগুলি' এ পাস করতে পারেন। আপনি যে বিকল্পগুলি নির্দিষ্ট করবেন না সেগুলি ডিফল্ট বিভাগগুলি থেকে নেওয়া হয় (স্ক্রিপ্টের নীচে দেখুন)। সুতরাং আপনি উদাহরণস্বরূপ যদি মাউস স্থানাঙ্ক নির্দিষ্ট করতে চান তবে আপনি এর মতো কিছু করতে পারেন:
simulate(document.getElementById("btn"), "click", { pointerX: 123, pointerY: 321 })
অন্যান্য ডিফল্ট বিকল্পগুলিকে ওভাররাইড করতে আপনি অনুরূপ পদ্ধতির ব্যবহার করতে পারেন।
ক্রেডিটগুলি কঙ্গাক্সে যেতে হবে । এখানে আসল উত্স (প্রোটোটাইপ.জেএস নির্দিষ্ট)।