`

javascript iframe跨域自适应高度

阅读更多
原理:通过在父窗口注册监听事件,子窗口获取事件并操作事件

方式方法:(插件方式 )
举例:比如,在yahoo页面需要放入一个iframe插件

1.制作一段js代码,大致如下:
  <script type="text/javascript" src="yahoo/v1/plugins-all.js">   </script>
  <script type="text/javascript">
CHAJIAN.Button.setup({href: "http://store.shopping.yahoo.co.jp/vitafelice/9034.html"});
</script>
  这是直接提供给yahoo的js插件,plugins-all.js内容如下:
 
  /**
* 提供给第三方代码
*/
var CHAJIAN = CHAJIAN || {};
(function(CHAJIAN ) {
var getHref = function() {
return window.location.href;
};
var getButton = function(setting) {
var _src = "http://192.168.0.108:7788/Plugins/voice.php?";
var _href = setting.href;
_href = typeof(_href) != "undefined"?_href:getHref();
_src =_src +"href="+_href;
var props = {};
props.width = "320";//default
props.id = "sp_iframe";
props.name = "sp_iframe";
props.frameborder = "0";
props.allowtransparency = "true";
props.marginhight = "0";
props.marginwidth = "0";
props.scrolling = "no";
props.src = _src;
SHOPAL.Utils.createElement("iframe",props,$("shopal"));
};
var $ = function(_objId) {
return document.getElementById(_objId);
};
// Button
CHAJIAN.Button = {};
CHAJIAN.Button.setup = function(setting) {
if (typeof (getButton) != "undefined") {
getButton(setting);
if (window.addEventListener) { //for W3C DOM
    window.addEventListener("message", receiveSize, false);
} else if (window.attachEvent) { //for IE
window.attachEvent("onmessage",receiveSize);
}
}
};
function receiveSize(e) {
        document.getElementById("sp_iframe").height = e.data;
    }

})(CHAJIAN);

************************以上是提供给第三方的代码,setting 可以是json格式的参数

2.在自己的域名下就可以这样设置父类(yahoo域名下)的iframe高度:

  /**
* timer autoSetHeight
* iframe跨域自适应高
*/
var sp_iframe_height = 0;
function autoSetHeight(){
var height = document.body.offsetHeight || document.body.scrollHeight; //offsetHeight/scrollHeight
var target = parent.postMessage ? parent : (parent.document.postMessage ? parent.document : undefined);
if (typeof target != "undefined"){
    if (height != sp_iframe_height) {
    target.postMessage(height, '*');
    sp_iframe_height = height;
}
    }
};
setInterval(autoSetHeight,200);


大功告成。。。




http://blog.sina.com.cn/s/blog_61b570ab0100rhep.html
 
分享到:
评论

相关推荐

    iframe跨域自适应高度模板

    总结来说,`iframe`跨域自适应高度模板主要是通过`CORS`解决跨域限制,通过JavaScript监听`load`事件或使用`postMessage`通信来实现内容高度的动态调整。这些技术在现代网页开发中十分常见,能帮助我们更灵活地整合...

    iframe跨域嵌套自适应高度

    ### iframe跨域嵌套自适应高度 在网页开发过程中,`iframe`作为一种常见的网页元素,被广泛用于在当前页面中嵌入另一个独立的文档或页面。然而,在实际应用中经常会遇到一些问题,如跨域限制、自适应高度调整以及...

    iframe自动适应高度(完美自适应高度嵌套代码),兼容目前主流浏览器。

    标题提到的“iframe自动适应高度(完美自适应高度嵌套代码)”提供了一个解决方案,它能够确保`iframe`在各种主流浏览器中都能正确地自适应内容高度,包括360浏览器、IE6-9、遨游、火狐以及搜狗浏览器。 在传统的`...

    iframe跨域常用问题和iframe页面自适应

    本篇文章将深入探讨两个关键知识点:`iframe`跨域问题以及`iframe`页面的自适应。 一、`iframe`跨域问题 跨域是Web开发中的一个重要概念,它限制了浏览器从一个源获取另一个源的资源,以保护用户的安全。当`iframe...

    iframe跨域高度自适应例子源码

    标题"iframe跨域高度自适应例子源码"指的是一个实例,展示了如何在跨域的情况下使`iframe`内容自动调整高度以适应其内部内容。这个例子提供了一个在线演示(http://okiner.cn/demo/cross-domain/iframe.html)以及源...

    js实现iframe自适应高度

    本文将详细讲解如何使用JavaScript实现`iframe`自适应高度的解决方案,确保在各种主流浏览器中都能正常工作。 首先,理解`iframe`的基本结构和属性是至关重要的。`iframe`标签通常包含`src`属性,用于指定要加载的...

    iframe内容高度 iframe自适应高度终极解决Iframe设置高度后无法缩小问题

    总的来说,通过使用JavaScript动态计算`&lt;iframe&gt;`内容的高度并设置`&lt;iframe&gt;`的高度,可以有效地解决`&lt;iframe&gt;`内容高度自适应以及设置高度后无法缩小的问题。同时,要注意兼容性问题和跨域限制,以确保在各种环境下...

    再谈iframe自适应高度

    "再谈iframe自适应高度"这个主题,关注的是如何使iframe的内容区域根据所加载页面的高度自动调整,以避免滚动条出现或者内容被截断的问题。在网页设计中,尤其是在构建响应式布局时,这是一个非常关键的优化点。 1....

    JavaScript 处理Iframe自适应高度(同或不同域名下)

    此外,要注意的是,这种跨域自适应高度的方法并非完美的解决方案,它依赖于浏览器对src属性改变事件的处理机制,且可能在某些浏览器下不工作或者有兼容性问题。此外,对Iframe大小的频繁改变可能会造成页面性能问题...

    iframe 跨域 自动适应高度

    1. **同源策略与iframe跨域** 同源策略是浏览器安全的一项基础机制,它限制了来自不同源的"文档"或脚本相互交互。当一个`iframe`加载的页面与包含它的页面不在同一个源下时,就会遇到跨域问题。为了解决这个问题,...

    Iframe 高度自适应浏览器高度

    当Iframe加载跨域内容时,安全限制可能会影响高度的动态调整。在这种情况下,可以使用HTML5的`sandbox`属性,配合`allow-scripts`允许Iframe内的脚本运行,以便计算高度。 5. **设定定时器**: 有些情况下,内容...

    iframe自适应高度.rar

    【标题】:“iframe自适应高度.rar”涉及到的关键知识点主要集中在如何使用JavaScript来处理网页中iframe元素的高度自适应问题。在Web开发中,iframe(Inline Frame)是一种内联框架,常用于在同一个HTML文档中嵌入...

    iframe根据页面内容自适应高度和宽度

    总结来说,实现`iframe`根据页面内容自适应高度和宽度,可以通过CSS、JavaScript以及第三方库如`iframe-resizer`来完成。不同的方法适用于不同的场景,开发者可以根据实际需求选择合适的方式。在处理跨域问题时,第...

    IFrame跨域高度自适应实现代码

    本文将深入探讨如何实现IFrame跨域高度自适应的解决方案。 首先,我们需要了解什么是跨域。在Web安全策略中,浏览器执行同源策略,这意味着一个网页只能访问与之同源(协议、域名、端口相同)的IFrame内容。但当...

    解决iframe跨域高度自适应问题的源码

    本篇文章将深入探讨如何解决iframe跨域高度自适应的问题。 首先,我们需要理解为什么会出现跨域问题。根据浏览器的同源策略,一个网页只能访问与之同源(即协议、域名和端口完全相同)的资源。而跨域则意味着iframe...

    iframe高度自适应

    在某些情况下,如果`iframe`内容与主页面同源,可以使用CSS的`resize`属性来尝试让`iframe`自适应高度。但是,这种方法并不适用于跨域的情况。 2. **JavaScript/jQuery解决方案**: 对于跨域的`iframe`,可以采用...

    iframe_自适应高度(简单好用).txt

    `iframe`自适应高度主要依赖于JavaScript来动态调整其高度属性。核心思路是监听`iframe`加载完成事件(`onload`),然后通过访问`iframe`内部文档的高度信息,计算出正确的高度值,并将其应用到`iframe`元素上。这通常...

    iframe自适应高度js demo

    在网页开发中,`iframe`(Inline Frame)是一种嵌入式框架元素,它允许我们在一个HTML文档中嵌入另一个HTML文档。...通过查看并运行这些文件,你可以更好地理解并实践`iframe`自适应高度的JavaScript解决方案。

    js实现iframe自动自适应高度的方法

    本篇文章将详细介绍如何使用JavaScript实现Iframe的自动自适应高度。 首先,理解基本概念。Iframe的`height`属性决定了其显示区域的高度,当我们想要Iframe内容自适应时,我们需要动态地修改这个属性值,使其等于...

    iframe自适应高度的简单解决办法

    总的来说,实现`iframe`自适应高度的方法主要有JavaScript动态计算、jQuery操作和跨域通信三种。根据实际项目需求和兼容性考虑,可以选择合适的方法。在实际应用中,还需要注意浏览器的兼容性和安全问题,确保解决...

Global site tag (gtag.js) - Google Analytics