I have a piece of JavaScript that dynamically creates an A tag inside of an existing div and then calls the jQuery function \"click\" on it. This works as inten
Trevor Dixon's answer does fix Safari, but breaks in even the latest Firefox:
TypeError: Not enough arguments to MouseEvent.initMouseEvent
The best way to support Safari—without breaking Firefox—would be using initEvent instead of initMouseEvent like so:
var element = document.getElementById('your_id_here');
if(element.click)
element.click();
else if(document.createEvent)
{
var eventObj = document.createEvent('MouseEvents');
eventObj.initEvent('click',true,true);
element.dispatchEvent(eventObj);
}
To update for 2016, MouseEvent should be used instead of initMouseEvent which is deprecated:
var eventObj = new MouseEvent("click", {
bubbles: true,
cancelable: true
});
element.dispatchEvent(eventObj);