Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何单击弹出窗口上的按钮_Javascript_Jquery - Fatal编程技术网

Javascript 如何单击弹出窗口上的按钮

Javascript 如何单击弹出窗口上的按钮,javascript,jquery,Javascript,Jquery,我的第一页上有一个按钮 <button id="btm" onclick="window.open('page.htm', '_blank', 'toolbar=yes, scrollbars=yes, resizable=yes, top=500, left=500, width=400, height=400')">Button1</button> 按钮1 我有另一个page.htm和下面的html <button id="testbtn" onclick=

我的第一页上有一个按钮

<button id="btm" onclick="window.open('page.htm', '_blank', 'toolbar=yes, scrollbars=yes, resizable=yes, top=500, left=500, width=400, height=400')">Button1</button>
按钮1
我有另一个page.htm和下面的html

<button id="testbtn" onclick="window.open('http://www.ivikashjha.com', '_blank', 'toolbar=yes, scrollbars=yes, resizable=yes, top=500, left=500, width=400, height=400')">Button2</button>
按钮2
我想打开网站ivikasjha.com在第一个按钮点击自己。 实际上,我想访问主父页面上弹出页面的控件。

同一域 浏览器内测试(Firefox 35)似乎表明,如果打开的窗口位于同一个域内,则该页面具有一定的访问权限

var child = window.open( 'http://example.com' )
child.localStorage.setItem( 'hello', 'there' ) // Sets correctly
child.$( 'body' ).css( 'background', 'blue' ) // Access denied to '$'
不同领域 然而,跨域的测试似乎将可用接口限制为
位置
父级
后消息
,以及其他一些接口

var child = window.open( 'http://other-domain.com' )
child.localStorage // cannot access
您还可以使用。在两个选项卡之间来回发布消息并不是最简单的方法,但至少你可以告诉弹出窗口单击它自己的按钮

如果失败,那么在后台打开共享websocket并以这种方式进行通信的两个页面都没有限制

外卖 在选项卡之间传播功能的最简单方法似乎是发布消息:

//Parent page
var childUrl = 'http://hello.example.com' )
var child = open( childUrl )
child.postMessage( 'click-button', childUrl )

//Child page
window.addEventListener( 'message', function( event ){
  if( event.data === 'click-button' ){
    $( '#my-button' ).click()
  }
}, false )

你想同时打开它们吗?是@jsve我想同时打开两个按钮点击其中一个。你试过调用
窗口吗?打开两次,一次到
page.htm
,一次到
ivikashha.com
?您可能会发现这是可行的,但会导致大多数浏览器阻止至少一个弹出窗口以避免垃圾邮件。显示了@redbmk在上面的评论中提到的一个实现,但正如他们正确预测的那样,第二个窗口被阻止。浏览器通常会阻止窗口在不是由用户操作直接打开时打开(在这种情况下,第一个窗口是由用户直接打开的,第二个窗口是通过初次单击打开的)。@TimMcClure,你的小提琴中有一个小错误。调用
trigger()
本身实际上不会做任何事情。我将其更改为“触发”(“单击”)
,您将在Chrome中至少看到一个弹出窗口被阻止的警告。