iframe中使用jquery进行查找的方法【案例分析】


Posted in Javascript onJune 17, 2016

本文实例讲述了iframe中使用jquery进行查找的方法。分享给大家供大家参考,具体如下:

问题:

今天在公司是给ckeditor添加一个“是否显示”图片标题的功能

难点:

插件的内容很多,功能相当强大,在短时间之内无法通读和理解里面的逻辑关系,而且修改的内容不能破坏插件内部的逻辑关系,不能因为添加一个功能而引入更多的问题,因此只能从局部去解决这个问题

突破口:

知道页面时使用iframe框架插入的html,页面有些初始化的功能是在这里完成的,因此在这里添加这个checkbox组件,然后根据最后的window去寻找自己想要处理的window对象——window.parent.document.body

jQuery(expression, [context])——如果指定了 context 参数,如一个 DOM 元素集或 jQuery 对象,那就会在这个 context 中查找。

下面这个例子就是想在iframe的父窗口中添加组件

$('tr.cke_dialog_ui_hbox', parent.document.body).prepend('<td><input type="checkbox" id="show_img_title" class="cke_dialog_ui_hbox_first">照片标题描述带入日记</td>');

不能在闭包里面去访问动态添加的组件,因为在页面加载的时候就已经运行了闭包里面的东西,但是页面还没有添加ID为kkkk的组件,使用$("#kkkk")得到的值就为空,这样不能实现预期的目的,出现异常的现象,在浏览器中会报脚本错误

如何判断jquery是否查找到符合条件的对象?

if(0==$(".check_show_img_title", parent.document.body).length){
   alert("没有查找到对象");
}else{
  alert("有"+$(".check_show_img_title", parent.document.body).length+"组件符合查询条件");
}

经验之谈:

在页面中动态添加了组件之后,由于刷新页面就恢复了正常初始化的状态,但是如果是局部刷新,可能会添加多个组件,但是如果只需要一个组件,则就是在离开页面的时候删除自己动态添加的组件,这样问题就来了,可能在不同的浏览器中不能删除,这样就会很郁闷,产生出浏览器兼容的问题,既然是这样那么可以换一种思维方式,在某种状态(在标签中添加属性)下就添加,否则就不添加,这样就不用去删除自己添加的组件了,换种方式解决了浏览器兼容的问题

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
ie和firefox不兼容的解决方法集合
Apr 28 Javascript
zTree插件之单选下拉菜单实例代码
Nov 07 Javascript
jQuery随机密码生成的方法
Mar 09 Javascript
AngularJS  $modal弹出框实例代码
Aug 24 Javascript
浅析Javascript的自动分号插入(ASI)机制
Sep 29 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
Oct 05 Javascript
微信小程序 传值取值的几种方法总结
Jan 16 Javascript
JS自定义函数实现时间戳转换成date的方法示例
Aug 27 Javascript
jQuery中.attr()和.data()的区别分析
Sep 03 jQuery
vue中实现图片和文件上传的示例代码
Mar 16 Javascript
ES6基础之解构赋值(destructuring assignment)
Feb 21 Javascript
three.js着色器材质的内置变量示例详解
Aug 16 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
Jun 17 #Javascript
jquery.qtip提示信息插件用法简单实例
Jun 17 #Javascript
jQuery实现区域打印功能代码详解
Jun 17 #Javascript
javascript日期比较方法实例分析
Jun 17 #Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
Jun 17 #Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
Jun 17 #Javascript
JavaScript简单实现弹出拖拽窗口(二)
Jun 17 #Javascript
You might like
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
PHP7多线程搭建教程
2017/04/21 PHP
PHP 断点续传实例详解
2017/11/11 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
js页面跳转常用的几种方式
2010/11/25 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
js和C# 时间日期格式转换的简单实例
2016/05/28 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
Python如何读写二进制数组数据
2020/08/01 Python
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
怎样让char类型的东西转换成int类型
2013/12/09 面试题
类的核心特性有哪些
2014/01/01 面试题
北京华建集团SQL面试题
2014/06/03 面试题
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
办护照工作证明
2014/10/01 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS
opencv检测动态物体的实现
2021/07/21 Python
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript