我的第一页上有按钮。
<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>
我有另一个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>
我想在第一个按钮点击本身打开网站ivikasjha.com。 实际上我想访问主父页面上弹出页面的控件。
答案 0 :(得分:1)
浏览器内测试(Firefox 35)似乎表明,如果打开的窗口位于同一个域内,则该页面具有一些访问权限
var child = window.open( 'http://example.com' )
child.localStorage.setItem( 'hello', 'there' ) // Sets correctly
child.$( 'body' ).css( 'background', 'blue' ) // Access denied to '$'
然而,跨域测试似乎限制了location
,parent
,postMessage
和其他几个人的可用界面
var child = window.open( 'http://other-domain.com' )
child.localStorage // cannot access
window.postMessage可供您使用。在两个标签之间来回发送消息并不是最简单的方法,但至少你可以告诉弹出窗口点击它自己的按钮。
如果失败,那么在后台打开共享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 )