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下动态加态js文件的方法
Sep 13 Javascript
JS定时器实例详细分析
Oct 11 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
Aug 10 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
Feb 16 Javascript
jquery分隔Url的param方法(推荐)
May 25 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
Jul 07 Javascript
又一款js时钟!transform实现时钟效果
Aug 15 Javascript
Vue 父子组件、组件间通信
Mar 08 Javascript
将angular-ui的分页组件封装成指令的方法详解
May 10 Javascript
详解webpack babel的配置
Jan 09 Javascript
使用Vue开发一个实时性时间转换指令
Jan 17 Javascript
vue中如何自定义右键菜单详解
Dec 08 Vue.js
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实时显示输出
2008/10/02 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
php密码生成类实例
2014/09/24 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
jquery获取当前日期的方法
2015/01/14 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
微信小程序 http请求的session管理
2017/06/07 Javascript
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
详解React 的几种条件渲染以及选择
2018/10/23 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
如何在 ant 的table中实现图片的渲染操作
2020/10/28 Javascript
python re正则表达式模块(Regular Expression)
2014/07/16 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
python3大文件解压和基本操作
2017/12/15 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
Python实现调用另一个路径下py文件中的函数方法总结
2018/06/07 Python
python人民币小写转大写辅助工具
2018/06/20 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
意大利香水和化妆品购物网站:Parfimo.it
2019/10/06 全球购物
高中自我鉴定
2013/12/20 职场文书
高中自我评价范文
2014/01/27 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
党员个人剖析材料
2014/09/30 职场文书
初中同学会致辞
2015/08/01 职场文书
Python自然语言处理之切分算法详解
2021/04/25 Python
JavaScript控制台的更多功能
2021/04/28 Javascript
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python