У меня есть ссылка (тег 'a').Я пытаюсь щелкнуть по нему с помощью JavaScript.Пока .click ();преуспевает в FF и IE, но не в Chrome.(chrome говорит, что у объекта нет метода click).
, вызывающий 'onclick' или перенаправляющий на 'href', не справится с работой.
любые идеи о том, как это сделатьэтот?Желательно, чтобы я не получил всю библиотеку только для этого.
В не-IE-браузерах используйте dispatchEvent ()
var event = document.createEvent("MouseEvents"); event.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); element.dispatchEvent(event);
должно работать в хроме
Я понимаю, что вам не нужна библиотека, но ее площадь довольно мала, вы можете использовать event.simulate для этого. это библиотека PrototypeJS, но я уверен, что перенос будет очень простым.
Чтобы использовать его в прототипе, вы должны позвонить:
$('my_anchor').simulate('click');
Работает кросс-браузерно, без проблем.
Я использую это:
function dispatchEvent(el, e) { // console.log("dispatching"); if ("createEvent" in document) { var evt = document.createEvent("HTMLEvents"); evt.initEvent(e, false, true); el.dispatchEvent(evt); } else { el.fireEvent("on" + e); } } dispatchEvent(document.getElementById("mylink"), "click");
Если вы знаете jQuery, просто создайте анонимную функцию и прослушайте событие onclick. Вам нужно будет указать класс или идентификатор для вас href,
например. HTML:
<a href='' id='clickMe'>Click here</a>
JQuery:
$(function() { $("#clickMe").click(function() { ... the action you wish to perform ... }) })
Надеюсь, это поможет. Dave
Попробуйте прочитать ссылочный пост, там у автора та же проблема. Он решает это, запустив скрипт в обратном вызове onLoad;
<body onLoad="DefaultButtonFix()">
Ссылка: Событие Click запускается в IE / Firefox, но Chrome отбрасывает назначение события