相信大多数程序员都跟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. 下拉框点链接js

    $("#input_text").click(function(){ $("#input_fonts").show(); }); $("#input_ ...

  2. 1008: [HNOI2008]越狱

    n个人,m种信仰: 问你相邻的人信仰不同的情况有多少种? 首先第一个人有m种选择,第二个人有m-1种选择,后面所有的人都只有m-1种选择: 所以结果就是m^n-m*(m-1)^(n-1) #inclu ...

  3. UVA 11739 Giving Candies

    求最大的公共前缀: 用后缀数组做: 其实暴力也可以过: #include<cstdio> #include<cstring> #include<algorithm> ...

  4. Chapter 17. Objects and Inheritance(对象与继承)

    javascript面向对象编程有几个层面: 1: 单一对象 (covered in Layer 1: Single Objects) 2: 对象之间的 prototype  (described i ...

  5. WebBrowser控件的高级定制+mshtml

    --> blog:WebBrowser控件的高级定制---以下为三篇重要的参考文献,    第一篇可以禁用了js弹窗和声音    第二篇的引用文献禁用了IE弹窗,但是原文的说明很好    第3篇 ...

  6. 如何查看跟踪查看LINUX内核中的源码

    我的博客:www.while0.com 最近看LINUX书籍时,根据书中代码找相应的函数或者结构定义相当吃力,根据网上资料按以下方法查找速度较快. 1.安装ctags 在源代码目录下运行 ctags ...

  7. misc_register、 register_chrdev 的区别总结

    参考: http://longer.spaces.eepw.com.cn/articles/article/item/60415 http://imganquan.org/blog/?p=350 网上 ...

  8. 《疯狂VirtualBox实战讲学录》

    <疯狂VirtualBox实战讲学录:小耗子之VirtualBox修炼全程重现>是市面上第一部同时也是唯一一部完整介绍VirtualBox的“中文版全程实战手册”!本书完整记录了Virtu ...

  9. 使用Visual Studio进行单元测试

    一.使用Visual Studio进行单元测试的几个建议 1.先写单元测试(依我愚见,应该是接口先行,如果有的话) -> 测试失败 -> 以最小的改动(即编写实际代码)使测试通过(而在VS ...

  10. ☀【组件】加载 load

    Bear / js / utils / load.js 动态修改script标签中的src属性存在的问题 javascript创建css.js,onload触发callback兼容主流浏览器的实现 各 ...