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 相关文章推荐
JAVASCRIPT下判断IE与FF的比较简单的方式
Oct 17 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
Jan 27 Javascript
JQuery 操作/获取table具体代码
Jun 13 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
Apr 21 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
May 11 Javascript
javascript控制层显示或隐藏的方法
Jul 22 Javascript
JavaScript调用客户端Java程序的方法
Jul 27 Javascript
引用jquery框架后出错的解决方法
Aug 09 Javascript
jQuery控制控件文本的长度的操作方法
Dec 05 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 Javascript
LayUI数据接口返回实体封装的例子
Sep 12 Javascript
详解 javascript对象创建模式
Oct 30 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基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
node.js适合游戏后台开发吗?
2014/09/03 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
详解微信第三方小程序代开发
2017/06/23 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
react高阶组件经典应用之权限控制详解
2017/09/07 Javascript
Vue不能观察到数组length的变化
2018/06/08 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
2018/09/13 Javascript
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
python实现自动更换ip的方法
2015/05/05 Python
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
Python内存读写操作示例
2018/07/18 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
pytorch masked_fill报错的解决
2020/02/18 Python
python爬取代理ip的示例
2020/12/18 Python
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
营销专业应届生求职信
2013/11/26 职场文书
机械制造专业个人的自我评价
2013/12/28 职场文书
一年级语文教学反思
2014/02/13 职场文书
升职自荐信怎么写
2015/03/05 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书
linux目录管理方法介绍
2022/06/01 Servers