2011-05-18 58 views
2

使用javascript,我需要做的一件事是在我的索引頁上單擊按鈕時,會打開一個新網頁(新窗口)。這個新的網頁重定向到另一個網頁,並使用setTimeout()函數關閉新窗口並重新回到原始索引。我的問題是,如果有一種方法可以提取重定向網頁的網址,以便我可以在我的原始索引中使用它。使用JavaScript獲取新打開的網頁的URL

我試過,

winRef = window.open(url+param);  
winRef.focus(); 
loc = window.location;  
setTimeout("winRef.close()", 3000); 

但這獲得我原來的索引頁的URL(而不是重定向的頁面,我需要)。有沒有辦法做到這一點?謝謝。

+1

你通過setTimeout的重定向頁面或做一些其他的網站/網址做到這一點? – 2011-05-18 14:19:15

+0

我打開的新頁面(使用window.open)會重定向到另一個網頁。 – MKMan 2011-05-18 14:22:17

+1

對,您打開的新頁面是在您的控制下,還是在不同域上的單獨網址? – 2011-05-18 14:28:25

回答

2

當然,您需要loc = winRef.location;而不是loc = window.location;,假設winRef是您打開的窗口。您也可能需要在超時時間內完成此操作,因爲重定向不會立即發生。

如果重定向的頁面與您所在的頁面位於同一個域中,您將只能執行此操作。如果它重定向到另一個域,則安全性將阻止您看到新的URL。如果您控制了正在重定向到的頁面,則可以通過更改它的哈希來使其通知原始頁面。

+0

哎呀,對不起,它是winRef = window.open(url + param)。我不小心把它留在原來的帖子裏(現在編輯它)。 我會嘗試你現在所建議的。 更新:謝謝! =) setTimeout()也需要(等待重定向),正如你所建議的。 – MKMan 2011-05-18 14:34:17

0

一個'開箱即用'的方式來獲取網址將是打開服務器端的URL,並基本上刮/蜘蛛它,並記錄的URL重定向。您可以在客戶端導航到該網址時在幕後執行此操作,或者僅執行一次操作並記錄結果。

這可能不是最簡單的解決辦法,但要完成什麼,應該不可能在JavaScript(再次,在不同的域假設其)

相關問題