javascript - 如何在弹出窗口中单击按钮

标签 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>

我有另一个 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。 实际上我想访问主父页面上弹出页面的控件。

最佳答案

同域

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

var child = window.open( 'http://example.com' )
child.localStorage.setItem( 'hello', 'there' ) // Sets correctly
child.$( 'body' ).css( 'background', 'blue' ) // Access denied to '$'

不同域

然而,跨域测试似乎将可用接口(interface)限制为 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 )

关于javascript - 如何在弹出窗口中单击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29757604/

相关文章:

javascript - jquery : Setting value in hidden input upon onchange event

jquery - 元素中的响应 Bootstrap 轮播多列

javascript - Bootstrap 选项卡以 Secondtab 中的大空白开头

javascript - 使用在 Safari 中不起作用的新 url 重新加载 iframe src/location

javascript - 对于 Chrome 扩展,从 https 站点调用 http 站点时出现错误

javascript - 如何在谷歌地图中显示多个标记,制造商有自己的信息窗口

javascript - JS用什么技巧显示/计算 float

javascript - jQuery 对话框不响应键盘按下

php - 当用户单击 "vote"w/php & mysql 时增加记录的分数

javascript - jQuery Javascript 数组 'contains' 功能?