Jquery在新窗口中单击事件

时间:2015-10-07 12:53:42

标签: jquery hyperlink triggers click

你好我想知道我是否可以打开链接并触发这样的点击:

目前没有任何事情发生。

$(document).ready(function(){
    window.open("url");
    $("object").delay(2500).trigger("click");
});

3 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是使用hash

$(document).ready(function(){
    window.open("url#click");
});

在另一页

$(document).ready(function(){
    if(window.location.hash == '#click'){
        $(".button").trigger("click");
    }
});

答案 1 :(得分:0)

这是因为你在当前页面的DOM而不是poup。

如果您执行以下操作:

var popup = window.open('/');

popup.addEventListener('load', function() {
    setTimeout(function() {
        $(popup.document.body).find("object").click();
    }, 2500);
}, false);

它将访问弹出窗口的DOM。

请参阅此小提琴,了解在小提琴编辑器中删除徽标http://jsfiddle.net/anrk8n83/1/的示例。

注意这不适用于跨域。

答案 2 :(得分:0)

因为我没有看到它是跨域的,所以几乎不可能将javascript调用到另一个窗口。

如果您使用以下代码尝试iframe:

$('iframe').load(function() {
    var iframe = this.contentWindow || this.contentDocument;

    $(iframe).find('h1').text('Changed title');
}).attr('src', 'http://example.com');

控制台中会出现错误:

  

未捕获的SecurityError:阻止具有原点“http://fiddle.jshell.net”的帧访问具有原点“http://example.com”的帧。协议,域和端口必须匹配。

您可以自己尝试in this JSFiddle

Chrome会阻止添加自定义JavaScript,因为它会隐藏安全漏洞。例如:您将Facebook加载到iframe中,并在“登录”按钮上添加一个事件监听器,您可以将用户名和密码发送到服务器。用户会认为他已安全登录,但在后台将密码发送到其他服务器。

我想你可能会采取另一种方式。像POST请求一样。但我不知道情况如何。