最近组里有点小忙,用公司自己的Force.com平台写的Customer Support应用刚刚Pilot,在做Code Refactoring。今天又被分配一个任务要在一个页面里嵌入另一个页面,如果这两个页面在同一个域名下的话,很容易或者子页面的ScrollHeight就可以了。
我的问题就是两个页面不在同一个Domain里面,于是Parent就不能访问Child Frame的一些参数,找了半天终于找到一个牛人的[url=http://www.pixelmedia.com/blog/dynamic-iframe-height/]解决方案[/url]。通过把Child Frame的实际高度放在Location的Hash值里传给Parent再刷新Parent。
以下给出一个没有用JQuery的版本:
在Child Frame里要加上的Javascript代码:
<script>
var parentUrl = "http://example/parent.html";
setHash = function() {
var body = document.getElementByTagName('body');
if (body.length>0)
parent.location = parentUrl + "#" + body[0].clientHeight;
}();
</script>
Parent页面里面要加入Javascript
function setHeight() {
var childFrame = document.getElementById('ChildFrameId');
var newHeight = parseInt(location.hash.substring(1)) + 50;
childFrame.height = newHeight;
childFrame.style.visibility = 'visible';
}
Parent页面里的Iframe片段
<iframe src="http://abc.com/page1.html" width='100%' height='100%' style='visibility:hidden' onload='javascript:setHeight();' frameborder ='0' />
这里我给Iframe加了一个隐藏的Style,当调整好高度以后再显示,为了不显示初次读取时的滚动条。相信大家都应该知道Display和Visibility在CSS里的区别了吧,不知道的话请看
这里
基本上我觉得Cross Domain情况下调整Iframe的高度用这种方法应该是最简单了,但是就是无法解决如果原先URL就有Hash的情况(会被覆盖掉,失去书签功能),还望高人指点。
分享到:
相关推荐
然而,有时我们需要在不同的域之间共享数据或者嵌入其他网站的内容,这时候`iframe`(Inline Frame)就成为了一种常用的解决方案。本文将深入探讨如何“完美解决iframe跨域问题”,并介绍其底层的`window.name`转换...
B域(子页面)中的文件crossdomain.js 实现跨域的关键文件,用于动态生成跳转的iframe;var crossDomain = new CrossDomain('<A>/cross_domain_transfer.html'); //初始化跨域类,传入目标域的跨域跳转页面...
本示例涉及到的“iframe-cross-domain.rar”文件,很可能包含了一组用于演示或教学如何处理iframe跨域问题的资源。`iframe`(内联框架)是HTML中一个非常有用的元素,它允许在一个页面中嵌入另一个网页,从而实现...
跨域iframe是一个常见的Web开发技术,它允许网页嵌入来自不同源的iframe,以实现不同域之间的数据交互或页面组合。在JavaScript执行库的上下文中,"跨域iframe"通常指的是一个工具或方法,用于在iframe之间安全地...
用postMessage解决跨域问题的完整demo,下载后通过node启动可直接测试,使用前请仔细阅读readme文件 可参考博客:https://blog.csdn.net/github_39274378/article/details/81671363
为了解决这一问题,HTML5引入了一种叫做跨文档消息传递(Cross-document messaging)的技术,允许不同源的窗口(包括`iframe`)通过`window.postMessage()`方法发送和接收消息。使用`postMessage`,父页面可以向`...
标题"iframe跨域高度自适应例子源码"指的是一个实例,展示了如何在跨域的情况下使`iframe`内容自动调整高度以适应其内部内容。这个例子提供了一个在线演示(http://okiner.cn/demo/cross-domain/iframe.html)以及源...
- 专有跨域解决方案:如Flash的crossdomain.xml,允许Flash对象进行跨域通信。 - HTML5的跨文档消息传递(Cross-document messaging):通过`window.postMessage`方法进行安全的跨域通信。 - W3C跨源资源共享(Cross...
crossdomain-xhr ,是一个没有外部依赖项的客户端javascript库。 该库通过使用标准XMLHttpRequest解决了跨域HttpRequest的问题。 根据系统设置,该库可以利用CORS或IFrame PostMessage。 为了支持IE 8和9,建议使用...
cross-domain 跨域集成方案 ...import com.os.crossdomain.CrossDomainMainServlet; import com.os.crossdomain.CrossDomainSubServlet; import org.springframework.boot.autoconfigure.SpringBootAppl
根据内容自动调整 iframe 的高度在 iframe 中添加这个脚本: FTVEN.iframeComIframe.autoresizeHeight();在父窗口中 iframe . myIframe { width : 300 px ; height : 400 px ; /* it's important to set an height *...
cross-domain一个利用html5的跨域api postMessage解决多iframe跨域通信的js框架背景最初公司只有一个系统来做销售,随着公司业务越来越多,搭建很多类似的系统(这些系统本来是没有任何关系的,每个系统目前都非常...
4. **IFrame通信**: 使用IFrame加载IDP的登录页面,通过窗口间通信(如postMessage API)来传递登录状态。 5. **JWT(JSON Web Tokens)**: JWT可以包含用户信息并经过签名,使得SP可以直接验证令牌而无需与IDP交互...
- `crossdomain.xml`:如果是XML文件,可能是服务器上用于CORS的配置文件,定义了哪些源可以访问该服务器资源。 5. 跨域安全问题:虽然跨域技术方便了数据交换,但也带来了一些安全问题,例如XSS(跨站脚本攻击)...
这通常意味着在服务器上放置一个crossdomain.xml文件,声明允许哪些源进行访问。 3. 监听加载事件:使用SWFLoader的事件监听器,例如`complete`事件,当HTML页面加载完成后执行相应操作。 4. 与HTML内容交互:通过...
This library enables the automatic resizing of the height and width of both same and cross domain iFrames to fit the contained content.
为了解决iframe跨域访问的问题,Web开发中引入了几种解决方案: 1. **CORS(Cross-Origin Resource Sharing)**:这是一种服务器端的方法,允许特定的资源被其他域的页面访问。通过设置HTTP响应头`Access-Control-...
这两个页面中可能包含了JavaScript代码,用于初始化iframe,设置通信接口,并调用`FrameMessage.js`和`json2.js`这两个JavaScript库。 `FrameMessage.js`可能是JavaScript实现的通信接口,它可能使用了`window.post...
the iframe communicates with its father page,cross domain supported(支持iframe和父页面跨域通信(全屏、高度自适应、滚动监听等) use html5 method postMessage how to use(使用) parent.html(父页面) &...
在网页开发中,有时我们需要在不同的页面或者框架之间进行交互,比如子页面操作父页面的数据,或者在一个iframe中访问另一个iframe中的内容。这种情况在实际应用中很常见,尤其是在构建复杂Web应用时。以下是对"子...