2014-02-26 105 views
0

我有這樣的代碼:當前位置Iframe何時更改?

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 
<script> 
function enviar(parametro){ 
var conteudo = $('#iframe_conteudo').attr('src'); 
alert(conteudo); 
} 
</script> 
<a href="#" id="" onclick="enviar('pegar')">pick url</a> 
<iframe id="iframe_conteudo" src="http://www.yahoo.com" width="500" height="500"></iframe> 

當我改變的iframe裏面的鏈接,例如:

Yahoo.com是iframe內運行,當我點擊在雅虎網站上的「遊戲」 ,iframe將我重新加載到新頁面(在iframe中),但是當我點擊按鈕「pick url」時,而不是抓住我完全相同的url,它會返回一個警報。到'yahoo.com'的第一個網址,爲什麼會發生這種情況?'

回答

0

嘗試使用

$("#iframe_conteudo").get(0).contentWindow.location 
+0

未捕獲SecurityError:阻止源「null」的框架訪問源自「http://br.yahoo.com」的框架。請求訪問的幀具有「文件」協議,被訪問的幀具有「http」協議。協議必須匹配。 – user3344322

0

這究竟是爲什麼?

這是因爲當iframe中的頁面導航到新頁面地址時,您的iframe的url沒有更改。你已經導航到不同的頁面,但是你沒有改變iframe的src。這就是爲什麼它會始終提醒應用於iframe的原始src。

你可以使用螢火蟲/ chromeInspector進行調試。

0

您的函數正在檢查硬編碼爲「http://www.yahoo.com」的「src」屬性。在iframe中加載新網址時,「src」屬性不會更改。

嘗試:$( 「#iframe_conteudo」)contentDocument.location

如果兩者都在同一域內這隻會工作。默認情況下,同源策略會阻止跨域。