2010-10-26 72 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