JQuery автоматически нажмите на ссылку - PullRequest
0 голосов
/ 01 сентября 2011

Хорошо, так что я искал все без ответа.Может кто-нибудь объяснить, почему

не работает с .trigger('click')

<a id="openNew" href="http://www.example.org">Click me</a>

<script type='text/javascript'> 
    $(window).load(function(){
        $('#openNew').addClass("external").attr({ target: "_blank", href: 'http://www.google.com' }).trigger('click');
    });
</script>

и не работает с .click()

<script type='text/javascript'> 
    $(window).load(function(){
        $('#openNew').addClass("external").attr({ target: "_blank", href: 'http://www.google.com' }).click();
    });
</script>

Не нажимает на ссылкуЯ делаю.Это работает только если я нажму на него.Как сделать автоматический клик?Работа над этим в течение приблизительно 1 часа и сводит меня с ума, я знаю, что, должно быть, я делаю что-то глупое.

JsFiddle для вашего удобства.

Я бы не сталне возражайте против любого другого решения в простом JavaScript.

Ответы [ 4 ]

1 голос
/ 01 сентября 2011

Используйте elem[0].click(); вместо elem.click();, поскольку вы хотите вызывать встроенную функцию щелчка, а не просто вызывать событие щелчка.

Кстати: блокировщики всплывающих окон не позволят этому фактически открыть новое окно(к счастью).

1 голос
/ 01 сентября 2011

Имитация физического нажатия пользователем ссылки невозможна.Поскольку вы используете target = '_ blank', я предполагаю, что вы хотите новое окно?Так что вам нужно будет использовать window.open.Какие блокировщики всплывающих окон не понравятся.

0 голосов
/ 01 сентября 2011

Карл Шведберг заявляет здесь (один из комментариев)

Использование .trigger ('click') не вызовет собственное событие щелчка.

Будет работать следующее:

<a id="openNew" href="http://www.example.org">Click me</a>

<script type='text/javascript'>
    $(window).load(function(){
        $('#openNew').addClass("external").attr({ target: "_blank", href: 'http://www.google.com' })[0].click();
    });
</script>

Демо здесь

0 голосов
/ 01 сентября 2011

На самом деле это нажата, но не открыта ссылка .. проверить здесь http://jsfiddle.net/H2KuF/5/

Возможно, вам нужно открыть новое окно браузера с этой ссылкой из JS.

вот образцы, которые я нашел:

function open2(url, opt){
  if (opt == 0) // current window
    window.location = url;
  else if (opt == 1) // new window
    window.open(url);
  else if (opt == 2) // background window
    {window.open(url); self.focus();}
}
...