相信大多数程序员都跟iframe打过交道,iframe简单,好用。在我用的过程中比较苦逼的是关于iframe高度的设置。

  由于子页面内容不确定,页面高度也不确定。于是开始网上的各种搜索,一般有两种:一种是通过父页面同一控制,另一种是通过子页面控制父页面的高度。通过父页面直接控制,试过n多次,屡试不对。。。于是通过另一种子页面控制父页面的高度

<iframe src="" id="mainFrame" name="mainFrame" width="100%" height="800" frameborder="no" border="0" scrolling="no"></iframe>

像这个iframe,如果想要实现iframe的高度随子页面内容的高度自适应,我们需要等子页面加载完成之后添加js代码,这段代码是经过我多次升级之后一直用的js代码实现想要功能

var oHeight = (document.body.scrollHeight)||(document.body.offsetHeight);
window.parent.document.getElementById('mainFrame').height = oHeight;

这种方法虽然在我做过的项目中没有出现什么兼容性问题,但是有一缺点就是,每个子页面都不能忘记调用这一段js代码,否则就会出问题。

  福利来啦!!!

  现在我们用jq的ajax来实现上述功能,但是不使用iframe标签,假如我们的html如下:

<a targeurl="productman.htm" class="menutar block">产品管理</a>
<a targeurl="orderman.htm" class="menutar block">订单管理</a>
<a targeurl="basicarc.htm" class="menutar block">基础档案</a>

  对应的js代码,我们只需要得到需要显示的页面路径,并ajax请求该路径,将请求的数据给了我们代替iframe的div即可。

  我们的div如下:

<div class="conIfram" id="ifrig"></div>

  对应的js,需要添加到a标签的click事件上,代码如下:

$(".menutar").click(function(){
var obj = this;
var tarurl = $(obj).get(0).attributes["targeurl"].nodeValue;
// console.log(tarurl);
$.post(tarurl,function(datas){
$("#ifrig").html(datas);
});
});

  粘贴代码试试吧

使用ajax代替iframe的更多相关文章

  1. ajax和iframe区别

    ajax和iframe https://segmentfault.com/a/1190000011967786 ajax和iframe的区别 1.都是局部刷新 2.iframe是同步的,而ajax是异 ...

  2. 使用ajax与iframe嵌套实现页面局部刷新

    使用ajax与iframe嵌套实现页面局部刷新.该javascript代码仅供参考,需按自己需要修改.​1. [代码]javascript代码 function cj_start(depname,gr ...

  3. javascript 不用ajax 用 iframe 子域名下做到ajax post数据

    最近在一个项目中遇到了ajax跨域的问题,情况如下.有三个域名分别是 a.xx.com b.xx.com c.xx.com 这三个域名都会用用ajax post方式相互读取数据.文笔不好, 不写了妈蛋 ...

  4. 上传文件的三种方式xhr,ajax和iframe及上传预览

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 使用jquery ajax代替iframe

    大家在实际编写网页时可能会遇到网页中需要嵌套网页的情况,这时候通常想法就是通过iframe标签. 但实际用过的人都知道其有种种的不方便,比较直观的问题就是iframe的自适应高度,这也是处理起来比较麻 ...

  6. 无刷新上传图片,ajax 和 iframe

    iframe 上传 upload.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...

  7. ajax模仿iframe

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. python_way day21 Django文件上传Form方式提交,原生Ajax提交字符处啊,Django文件上传之原生Ajax方式、jQuery Ajax方式、iframe方式,Django验证码,抽屉示例,

    python_way day21 1.Django文件上传至Form方式 2.原生Ajax文件上传提交表单 使用原生Ajax好处:不依赖jquery,在发送一个很小的文件或者字符串的时候就可以用原生A ...

  9. iframe实现伪ajax

    iframe实现伪ajax 数据提交的两种方式: Form Ajax Ajax提交数据的方法: JS实现 Jquery “伪”Ajax "伪"Ajax: iframe+from实现 ...

随机推荐

  1. Python 标准库 urllib2 的使用细节

    刚好用到,这篇文章写得不错,转过来收藏.    转载自 道可道 | Python 标准库 urllib2 的使用细节 Python 标准库中有很多实用的工具类,但是在具体使用时,标准库文档上对使用细节 ...

  2. 转一贴,今天实在写累了,也看累了--【Python异步非阻塞IO多路复用Select/Poll/Epoll使用】

    下面这篇,原理理解了, 再结合 这一周来的心得体会,整个框架就差不多了... http://www.haiyun.me/archives/1056.html 有许多封装好的异步非阻塞IO多路复用框架, ...

  3. 第七章Bulk设备

    小川工作室编写,本书为LM3S的USB芯片编写,上传的均为草稿,还有没修改,可能还有很多地方不足,希望各位网友原谅! QQ:2609828265 TEL:15882446438 E-mail:paul ...

  4. PCB使用技巧

    1.元器件标号自动产生或已有的元器件标号取消重来Tools 工具|Annotate…注释All Part:为所有元器件产生标号Reset Designators:撤除所有元器件标号2.单面板设置:De ...

  5. Fast UI Draw (Intel出品)

    Fast UI Draw in a library that provides a higher performance Canvas interface. It is designed so tha ...

  6. 中文乱码的分析 和 从Eclipse设置启动JVM时的字符集(转)

    最近时常碰到中文乱码的问题,eclipse的编码环境设置的都是UTF-8,外部也是以UTF-8的编码进行传参的,但是遇到中文的时候还是因为乱码而产生一系列的错误.在网上查了许多资料,发现这是跟JVM的 ...

  7. poj棋盘分割(记忆化)

    http://poj.org/problem?id=1191 黑书上P116 想了挺久 没想出来 想推出一公式来着 退不出来.. 想偏了  正解:递归 #include <iostream> ...

  8. hadoop2.2原理: 序列化浅析

    序列化是指将一个对象编码成字节流,之后从字节流中重构对象: 为什么需要序列化? 答:用序列化接口可以将对象实例从存储到本地文件或者传送到网络的另一端的节点上: 序列化过程: 序列化的三种主要用途: 1 ...

  9. bzoj1705

    话说这题很久以前就写过,然后好像一直忘了写题解…… 以前看这道题还觉得挺难的,现在觉得好水 首先朴素的想法肯定是动归 f[i,j]表示到处理到第i根电线,最终高度为j的最小花费 f[i,j]:=min ...

  10. BZOJ2553: [BeiJing2011]禁忌

    2553: [BeiJing2011]禁忌 Time Limit: 20 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 203  Solved: ...