锚标记触发器不会在Jquery中自动触发

时间:2014-01-03 10:24:41

标签: javascript jquery html

我正在尝试触发锚标记,以避免在重定向到新窗口时浏览器阻塞。问题是锚标记点击事件“$('#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>

4 个答案:

答案 0 :(得分: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')
}

答案 1 :(得分:0)

试试这个:

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

或:

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

答案 2 :(得分:0)

您无法从javascript / jquery调用锚标记的click-event。这是内置于浏览器中的安全措施。

  

click方法旨在与类型的INPUT元素一起使用   按钮,复选框,收音机,重置或提交。 Gecko没有实现   单击可能需要响应的其他元素的方法   鼠标点击如链接(A元素),也不一定会触发   其他元素的点击事件。

See Here

您可以直接使用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')

答案 3 :(得分:0)

您可以使用Id绑定此标记的Click事件,然后触发事件,当事件触发器使用Window.location重定向...