2013-04-05 88 views
1

我有兩頁,頁面爲「a」,頁面爲「b」。嘗試從新頁面聚焦已打開的彈出窗口

Page'a」生成由

function loadWindow(){ 
var params = 'status = 0, height = 300, width = 480, resizable = 0'; 
if(isTouchDevice()){ 
    params = '' 
} 
w = window.open('/audio/audioplayer.php?id='+audioId, 'audioplayer', params); 
w.document.close(); 
} 

然後訪問者進入網頁B(彈出窗口仍處於打開狀態)。我想第B按鈕一個js彈出窗口,按下時,它帶來的焦點以將其在頁面創建的彈出窗口。

我試圖尋找答案還沒有什麼工作。我知道我可以把焦點與

window.open('', 'audioplayer', ''); 

w.focus(); 

,但問題是我無法弄清楚如何從「A」頁

+0

爲什麼'var w = window.open('','audioplayer',''); w.focus();'工作?事實上,你使用相同的第二個參數(窗口的名稱)意味着你應該能夠在彈出的方式抓住一個句柄 – Ian 2013-04-05 17:03:41

+0

它是如何在加載新頁面時保持彈出窗口打開? – isherwood 2013-04-05 17:05:13

+0

@isherwood你是什麼意思?如果用'window.open'打開一個彈出窗口,然後在幾秒鐘內導航到另一個頁面,彈出窗口保持打開狀態。 – Ian 2013-04-05 17:06:07

回答

0

您不能訪問其他窗口引用彈出,因爲你的參考,當你去到網頁B死亡。出於安全原因,大多數瀏覽器都不會允許這樣做。如果這是可能的任何頁面訪問所有瀏覽器選項卡。

你可以測試這個。通過打開彈出窗口,然後在其中執行window.opener。這將返回頁面a。但是當你從頁面a瀏覽頁面b時。彈出窗口的開啓器屬性將爲空。

圍繞的工作將動態地將頁面b加載到頁面a中。這樣窗口和參考將被保留。

+0

嗯,這就是我所假設的,希望我錯了... 是他們這樣的方式來保存cookie中的引用或東西? – user1948626 2013-04-05 19:23:34

+0

不是我所知道的。你可以將它轉換爲json並重新創建一個像它的對象。但絕不是同一個對象 - 因爲它沒有引用就死了。哪些不會引用舊窗口。對不起,我認爲iframe或動態加載頁面b是您的最佳選擇。 – 2013-04-05 19:49:13

相關問題