2013-06-19 18 views
3

我需要這樣的功能 - 讓子窗口的URL加載它Javascript - 我可以獲取子窗口的url嗎?

var ref = window.open(link, window_params); // link - external in other domain 
setTimeout(function(){ 
    console.log(ref.location.href); 
}, 1000); // 100 ms for example 

後,我得到錯誤

Error: Permission denied to access property 'href' 

我知道產地限制後,這個從窗子爬網址在另一個起源和閱讀常見問題解答文章 - https://developer.mozilla.org/en-US/docs/Web/API/window.open?redirectlocale=en-US&redirectslug=DOM%2Fwindow.open

我可以通過某種方式獲得打開窗口的URL嗎?有任何想法嗎?

+1

如果它不是你的腳本正在打開的窗口中,你應該能夠找到剛剛打開的窗口中的腳本,反過來,找到正在打開的窗口的href。 – sircapsalot

+0

這是我的腳本打開窗口。但在這個窗口中 - 與Oauth授權的外部站點 –

+0

什麼是window.open(link,window_params)中的'link'' – sircapsalot

回答

0

如果打開的頁面在您的控制範圍內,您應該能夠在子窗口調用的父級中設置回調函數;

家長

window.OnChildWindowLoaded = function (href) { 
    console.log('Opened ' + href + ' successfully'); 
}; 
window.open('Child.html', ...); 

Child.html

<script> 
window.onload = function() { 
    window.opener.OnChildWindowLoaded(location.href); 
}; 
</script> 
+0

它只適用於同一起源,我沒有控制child.html –

+0

@VladimirCherepinskiy我也有同樣的問題。你能找到解決方案嗎? – Dinesh

+0

@Dinesh - 不幸的是 - 不,我認爲這是不可能的起源限制 –

相關問題