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 相关文章推荐
显示、隐藏密码
Jul 01 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
Oct 17 Javascript
jQuery实现长按按钮触发事件的方法
Feb 02 Javascript
JS获取Table中td值的方法
Mar 19 Javascript
Bootstrap3制作搜索框样式的方法
Jul 11 Javascript
微信小程序 教程之模板
Oct 18 Javascript
jquery实现文本框的禁用和启用
Dec 07 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
May 01 Javascript
webuploader实现上传图片到服务器功能
Aug 16 Javascript
解决vue路由后界面没有变化,但是链接有的问题
Sep 01 Javascript
深入浅析vue中cross-env的使用
Sep 12 Javascript
vue在路由中验证token是否存在的简单实现
Nov 11 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
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
php设计模式 Interpreter(解释器模式)
2011/06/26 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
Quasar Input:type=&quot;number&quot; 去掉上下小箭头 实现加减按钮样式功能
2020/04/09 Javascript
vue实现购物车的监听
2020/04/20 Javascript
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
python动态监控日志内容的示例
2014/02/16 Python
Python引用模块和查找模块路径
2016/03/17 Python
说一说Python logging
2016/04/15 Python
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
python 实现上传图片并预览的3种方法(推荐)
2017/07/14 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
Python中分支语句与循环语句实例详解
2018/09/13 Python
Python容器使用的5个技巧和2个误区总结
2019/09/26 Python
python怎么提高计算速度
2020/06/11 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
JAVA高级程序员面试题
2013/09/06 面试题
应用电子技术专业个人求职信
2013/09/21 职场文书
化工专业推荐信范文
2013/11/28 职场文书
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
房屋买卖协议书范本
2014/04/10 职场文书
教育教学读书笔记
2015/07/02 职场文书
2015年中学总务处工作总结
2015/07/22 职场文书
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript