Триггер привязки не запускается автоматически в Jquery

0

Я пытаюсь вызвать тег привязки, чтобы избежать блокировки браузера, когда я перенаправляюсь в новое окно. Проблема заключается в событии щелчка тега якоря " $('#hello').trigger('click'); " не запускается автоматически.

Я что-то упускаю?

Пожалуйста, исправьте меня, что не так в нижнем html-коде.

Благодарю.

<!DOCTYPE html>
        <html>
        <head>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <title>Mobile Browser Detective</title>
            <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <script>
                $(document)
                        .ready(
                                function() {
                                var isMobile = {
                                        any: function() {
                                            return navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i);
                                        }
                                    };
                                    if(isMobile.any()){
                                        window.location.replace("http://www.google.com");
                                    } else {
                                        $('#hello').prop("href","javascript:window.open('http://www.yahoo.com','mywindowtitle','toolbar=no, menubar=no,scrollbars=no,resizable=no,location=no,directories=no,status=no,width=500,height=600')");
                                        $('#hello').trigger('click');                       
                                    }

                                });
            </script> 
        </script>
        </head>
        <body>
                <a id="hello">test</a>

         <!-- Mobile Browser Detecting -->
        </body>
        </html>
  • 1
    Окно откроется только одним щелчком пользователя, все браузеры теперь не позволяют открывать новые окна, если это не является прямым действием пользователя, чтобы избежать раздражающих всплывающих окон.
  • 1
    И триггер () не будет запускать JavaScript-код href.
Показать ещё 1 комментарий
Теги:

4 ответа

0

Вы не можете вызывать click-event тега привязки из javascript/jquery. Это мера безопасности, встроенная в браузер.

Метод click предназначен для использования с элементами INPUT кнопки типа, checkbox, radio, reset или submit. Gecko не реализует метод click для других элементов, которые, как ожидается, будут реагировать на щелчки мышью, такие как ссылки (элементы A), и не обязательно будут запускать событие щелчка других элементов.

Глянь сюда

Вы можете напрямую использовать для этого метод window.open() (который вы установили как якорь "href"):

window.open('http://www.yahoo.com','mywindowtitle','toolbar=no, menubar=no,scrollbars=no,resizable=no,location=no,directories=no,status=no,width=500,height=600')
  • 0
    Но я бы хотел избежать предотвращения блокировки браузера.
  • 0
    Хорошо, чем ты прав. Блокировщики всплывающих окон включаются, если window.open или аналогичный файл вызывается из javascript, который не вызывается прямым действием пользователя.
0

Yoi не нужно устанавливать атрибут href, вы можете просто вызвать window.open в блоке else

if (isMobile.any()) {
} else {
    window.open('http://www.yahoo.com','mywindowtitle','toolbar=no, menubar=no,scrollbars=no,resizable=no,location=no,directories=no,status=no,width=500,height=600')
}
  • 0
    Я вызываю через href, потому что я хотел бы избежать блокировки всплывающих окон браузера, когда появляется новое окно. И мне нужно новое окно изменения размера.
  • 0
    Вы проверяли это, и это заблокировано?
Показать ещё 2 комментария
0

Попробуй это:

$('#hello').click();

или:

window.location = $('#myanchor').attr('href');
0

Вы можете связать событие Click этого тега с помощью Id, а затем запустить событие, когда event trigger Перенаправить его с помощью Window.location...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню