[英]iFrame Widget get URL and IP Address
我有一個構建的小部件,它將作為調用PHP頁面的iFrame放在多個站點上。 我需要保存使用小部件的IP地址和URL。
的iFrame:
<iframe frameborder='0' width='620' height='620' src='http://example.com/widget.php?rid=22'></iframe>
現在我正在嘗試:
$ip_address = $_SERVER["REMOTE_ADDR"];
$url = $_SERVER['REQUEST_URI'];
這將不斷返回與PHP文件所在位置相同的信息。
提前致謝!
不確定IP地址,但是您至少可以使用javascript的父級獲取父級位置。 例如:
parent.location.href
內聯框架(即iframe)會在另一頁上顯示。 它不會使該代碼段成為保存iframe的頁面的一部分。 它在構架但實際上並未包括src屬性中指向的內容。 這是“嵌套瀏覽上下文”的一部分。 它是嵌套的,在觀看者的眼中。 但是,零件是它們的存儲位置。 這就是服務器報告文件所在頁面地址的部分原因。
http://www.w3.org/TR/2011/WD-html5-20110525/the-iframe-element.html#the-iframe-element
一個iframe僅包含另一個外部Web應用程序的一部分。
這意味着在iframe中執行的服務器端代碼在托管服務器上 。
所以您不能訪問---幸運的是! ---嵌入服務器的服務器端代碼,例如PHP全局變量。
您可以嘗試的唯一方法(由於Same Origin Policy的緣故,這不是一種干凈或有效的保證方法),是在javascript中詢問有關客戶端嵌入式應用程序的一些信息。 在Javascript中,您可以訪問當前URL,但不能訪問IP地址,除非嵌入式服務器端代碼允許您執行此操作。
看一下這個問題 :
謝謝大家,但是我可以解決這個問題。
var iframe = (parent !== window);
var url = null;
if(iframe) {
url = document.referrer;
ref = url.match(/:\/\/(.[^/]+)/)[1];
}
“ URL”變量將返回iFrame所在的完整URL和頁面,而“ ref”將僅返回域。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.