2015-04-20 110 views
2

我在第一頁上有按鈕。如何點擊彈出窗口上的按鈕

<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

你想讓他們都在同一時間打開? –

+0

是@jsve我希望兩個按鈕都單擊一個按鈕。 –

+0

您是否嘗試過兩次調用'window.open',一個調用'page.htm',一個調用'ivikashjha.com'?您可能會發現這樣做,但會導致大多數瀏覽器至少阻止其中一個彈出窗口以避免垃圾郵件。 – redbmk

回答

1

同域

一個在瀏覽器中測試(火狐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) 
相關問題