Javascript 在自己的网站中显示外部内容(将浏览器模拟为Web应用程序)
我想建立一个Web应用程序,提供有关“动态”网站的附加信息。例如,用户访问我的网站,但他们可以在那里浏览其他页面,例如,在Javascript 在自己的网站中显示外部内容(将浏览器模拟为Web应用程序),javascript,php,html,iframe,Javascript,Php,Html,Iframe,我想建立一个Web应用程序,提供有关“动态”网站的附加信息。例如,用户访问我的网站,但他们可以在那里浏览其他页面,例如,在iframe中作为我网站的主要部分。但现在,根据用户当前浏览的网站,我还想显示其他信息,如一些与该网站相关的评论或评级 使用iframe显示外部页面的解决方案非常简单。但是,由于安全问题,如果URL不是作为父页面的域,则无法在iframe中跟踪当前加载的URL。一旦用户单击外部页面中的链接,我的父页面将不知道新位置,并且无法相应地更新附加信息 我尝试了一些简单的解决方法,包括
iframe
中作为我网站的主要部分。但现在,根据用户当前浏览的网站,我还想显示其他信息,如一些与该网站相关的评论或评级
使用iframe
显示外部页面的解决方案非常简单。但是,由于安全问题,如果URL不是作为父页面的域,则无法在iframe
中跟踪当前加载的URL。一旦用户单击外部页面中的链接,我的父页面将不知道新位置,并且无法相应地更新附加信息
我尝试了一些简单的解决方法,包括使用PHP脚本grab.PHP
获取和显示外部内容:
<?php
$ch = curl_init($_GET['url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$content = curl_exec($ch);
curl_close($ch);
echo $content;
?>
但这也带来了一些问题。首先,相对源(例如到图像)指向具有我的域的位置,因此不显示。其次,我还需要调整外部页面中包含的所有相对链接和绝对链接,比如grab.php?url=…
。最后,这不适用于外部页面必须动态加载的内容。最后一点似乎是一个重大的问题
我现在的问题是,有没有办法实现这一点
(我目前有一个使用浏览器扩展的解决方案,它会打开一个弹出窗口来显示附加信息。但很明显,该扩展依赖于浏览器,一个不需要用户安装扩展的替代解决方案将非常好。如果我能获得
iframe的当前URL,一切都将变得微不足道代码>).也许可以去掉iframe,尝试用cURL解析子页面,用所需页面中的内容替换整个文档的内容+您的codeCare的其他未来需要详细说明?老实说,我不太明白。因为它仍然使用cURL,动态加载内容的问题不是仍然存在吗?如果您使用php只是为了获取远程页面的数据,那么就没有问题了,您甚至可以登录某个页面并使用cURL获取所需的数据。您需要调整标题部分以包含脚本,页面的其余部分可以保持原样(添加小部件的html和css),当链接和图像src是相对的时,也会将它们解析为绝对的。也许可以去掉iframe并尝试用cURL解析子页面,以将整个文档的内容替换为来自所需页面的内容+您的编解码器的其他未来需要详细说明?老实说,我不太明白。因为它仍然是using cURL,动态加载内容的问题是否仍然存在?如果您使用php只是为了获取远程页面的数据,那么就没有问题了,您甚至可以登录某个页面并使用cURL获取所需的数据。您需要调整标题部分以包含脚本,页面的其余部分可以保持原样(通过添加小部件的html和css),还可以将链接和图像src解析为绝对的,当它们是相对的时。
<iframe src="grab.php?url=http://www.google.com" width="1200" height="800"></iframe>