我需要在页面内部显示一个页面,例如iframe,但要使用jquery.这些页面不在同一服务器上.
主页是cms内的html页面,需要嵌套的页面是位于另一台服务器上的包含图像或音频文件列表的媒体页面.高度在媒体页面上会有所不同,所以我有点想远离iframe … jquery中是否有一个简单的调用可以像iframe一样抓取一个页面…或者如果将js转换为iframe则会降级为iframe在浏览器级别关闭?
谢谢.
解决方法:
除非您的外部内容是从与您的主网站相同的域中提供的,否则使用AJAX进行此类操作并非易事,因为您可能会遇到same origin policy.
解决相同起源策略的一种解决方案是在服务器上设置一个简单的reverse proxy,这将允许浏览器使用相对路径进行AJAX请求,而服务器将充当任何远程位置的代理.
如果在Apache中使用mod_proxy,则设置反向代理的基本配置指令是ProxyPass.通常按以下方式使用:
ProxyPass /external/ http://other-domain.com/
在这种情况下,浏览器将能够请求/external/index.html作为相对URL,但是服务器将通过充当http://other-domain.com/index.html的代理来提供服务.
然后,在您的JavaScript中,您将可以使用jQuery load()
方法,如下所示:
$('#your_div').load('external/index.html');
另一种选择是使用iframe,并使用JavaScript动态调整其高度.您可能需要检查以下Stack Overflow帖子,以进一步阅读该主题:
> Resize iframe height according to content height in it
> Dynamically Resizing an Iframe
您可能还想考虑完整的服务器端解决方案,如上面评论中建议的@Yi Jiang.您可以将HTML从外部站点注入到主站点,然后再将其提供给客户端的浏览器.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。