簡體   English   中英

iFrame小部件獲取URL和IP地址

[英]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-if​​rame-element.html#the-if​​rame-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM