Если вы не хотите, чтобы это работало только в IE, у меня нет ответа для вас, но я могу сказать вам, в чем проблема. Проблема в target=_blank
. Попробуйте следующий код в качестве теста - обратите внимание, что он приведет вас на Google.com - затем попробуйте написать "_blank" в качестве цели. Кажется, это единственное, что не разрешают браузеры. Частичный ответ на ваш вопрос: fireEvent()
работает с IE и dispatchEvent()
работает со всем остальным. Если бы кто-то еще мог улучшить этот код, я также был бы признателен за лучший ответ.
<html>
<head>
<script type="text/javascript">
window.onload = function fireElement() {
var target=document.getElementById('foobar');
if(document.dispatchEvent) { // W3C
var oEvent = document.createEvent( "MouseEvents" );
oEvent.initMouseEvent("click", true, true, window, 1, 1, 1, 1, 1, false, false, false, false, 0, target);
target.dispatchEvent( oEvent );
}
else if(document.fireEvent) { // IE
target.fireEvent("onclick");
}
}
</script>
</head>
<body>
<div>
<a id="foobar" target="" href="http://www.google.com"></a>
</div>
</body>
</html>