Имитация нажатия на тег «a» в Chrome - PullRequest
6 голосов
/ 10 января 2012

У меня есть ссылка (тег 'a').Я пытаюсь щелкнуть по нему с помощью JavaScript.Пока .click ();преуспевает в FF и IE, но не в Chrome.(chrome говорит, что у объекта нет метода click).

, вызывающий 'onclick' или перенаправляющий на 'href', не справится с работой.

любые идеи о том, как это сделатьэтот?Желательно, чтобы я не получил всю библиотеку только для этого.

Ответы [ 6 ]

2 голосов
/ 10 января 2012

В не-IE-браузерах используйте dispatchEvent ()

1 голос
/ 10 января 2012
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);

должно работать в хроме

1 голос
/ 10 января 2012

Я понимаю, что вам не нужна библиотека, но ее площадь довольно мала, вы можете использовать event.simulate для этого. это библиотека PrototypeJS, но я уверен, что перенос будет очень простым.

Чтобы использовать его в прототипе, вы должны позвонить:

$('my_anchor').simulate('click');

Работает кросс-браузерно, без проблем.

0 голосов
/ 08 сентября 2015

Я использую это:

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");
0 голосов
/ 10 января 2012

Если вы знаете jQuery, просто создайте анонимную функцию и прослушайте событие onclick. Вам нужно будет указать класс или идентификатор для вас href,

например. HTML:

<a href='' id='clickMe'>Click here</a>

JQuery:

$(function() {  
  $("#clickMe").click(function() {
    ... the action you wish to perform ...
  }) 
})

Надеюсь, это поможет. Dave

0 голосов
/ 10 января 2012

Попробуйте прочитать ссылочный пост, там у автора та же проблема.
Он решает это, запустив скрипт в обратном вызове onLoad;

<body onLoad="DefaultButtonFix()">

Ссылка: Событие Click запускается в IE / Firefox, но Chrome отбрасывает назначение события

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...