2010-10-26 52 views
1

從加載到獨立域的iframe的iframe html獲取瀏覽器URL是否100%是不可能的?我試過JavaScript,它沒有工作。我可以用什麼語言來做這件事?謝謝!從子iframe獲取URL

UPDATE 感謝您的幫助! PHP確實有效。

<?php 
if(isset($_SERVER['HTTP_REFERER'])) 
{ 
    echo $_SERVER['HTTP_REFERER']; 
}?> 

回答

2

如果你問的是如果你可以通過Javascript獲取在iframe中託管你的頁面的瀏覽器的URL,答案是否定的;你不能在正確書寫的網絡瀏覽器中做到這一點。如果iframe可以監視託管它的任何東西,那麼可以完成各種惡意的事情。

您可以從您的服務器端代碼中查看託管頁面請求中的referrer HTTP標頭。這應該設置爲嵌入頁面的頁面的URL。

1

您可以獲得iframe設置爲的初始src屬性。

alert(document.getElementById("iframeID").src); 

JSFiddle

但是如果inlying文檔導航到另一個頁面,你絕對無法獲得新的地址。

+0

這是否會獲得當前的URL(如果用戶已在框架內導航)或初始/默認網址? – 2010-10-26 21:17:30

+0

如果您不知道幀ID,因爲您沒有控制將網站加載到iframe中的主機頁,該怎麼辦?謝謝! – 2010-10-26 21:17:42

+1

@Christian最初的一個,補充說明。 @Angelfilm否,您無法從iframe中控制主機頁面。主機URL *可能出現在'HTTP_REFERER'請求標題中,但您需要服務器端腳本來解析該文件。 – 2010-10-26 21:19:04

0

一旦用戶在與主文檔不同的域中的iframe中導航,您就無法訪問iframe中關於該新文檔的任何信息。這是XSS攻擊保護,不能被「圍繞工作」

-1

只要使用這個JavaScript來檢測,如果你的網頁是一個框架或iframe中:

<script> 
    if(top.frames.length > 0) 
    { 
     // do something like this to kill the iframe 
     top.location = "http://mysite.com"; 
    } 
</script> 
+0

謝謝 - 我不想殺死我所在的框架,只是知道它是什麼,以便我們可以跟蹤它並處理我們內容的安全性。感謝您的迴應。 – 2010-10-26 21:45:34