iFrame Widget获取URL和IP地址

时间:2014-05-14 21:35:03

标签: javascript php jquery mysql iframe

我有一个我构建的小部件,它将作为iFrame调用PHP页面放在多个站点上。我需要保存小部件使用位置的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文件所在位置相同的信息。

提前致谢!

4 个答案:

答案 0 :(得分:2)

不确定ip地址,但您可以使用javascript的父级至少获得父级位置。例如:

parent.location.href

答案 1 :(得分:2)

内联框架iframe会查看另一个页面。它不会使代码段成为持有iframe的页面的一部分。它是框架,但实际上并不包括src属性中指向的内容。这是“嵌套浏览上下文”的一部分。它嵌套在观众的眼前。但是,部件是存储它们的地方。这是服务器报告文件所在页面地址的部分原因。

http://www.w3.org/TR/2011/WD-html5-20110525/the-iframe-element.html#the-iframe-element

答案 2 :(得分:0)

iframe只包含另一个外部Web应用程序的一部分。

这意味着在iframe中执行的服务器端代码位于托管服务器上。

所以你无法访问---幸运的是! ---到嵌入服务器服务器端代码,例如PHP全局变量。

你可以尝试的唯一一件事(由于Same Origin Policy而不是干净或工作保证的方式),就是在javascript中询问有关客户端嵌入式应用程序的一些信息。 在Javascript中,您可以访问当前URL,但不能访问IP地址,除非嵌入服务器端代码允许您这样做。

看看this question

答案 3 :(得分:0)

谢谢大家,但我得到了这个......

var iframe = (parent !== window);
var url = null;

if(iframe) {
    url = document.referrer;
    ref = url.match(/:\/\/(.[^/]+)/)[1];
}

&#34; url&#34;变量将返回完整的URL和iFrame打开的页面,而#34; ref&#34;将只返回域名。