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中至少看到一个弹出窗口被阻止的警告。