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 相关文章推荐
JS Array对象入门分析
Oct 30 Javascript
Node.js开发之访问Redis数据库教程
Jan 14 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
Nov 30 Javascript
jquery采用oop模式class类的使用示例
Jan 22 Javascript
bootstrapvalidator之API学习教程
Jun 29 Javascript
jQuery实现表格隔行换色
Sep 01 jQuery
在vue项目中引用Iview的方法
Sep 14 Javascript
js实现简单掷骰子效果
Oct 24 Javascript
vue实现图片懒加载的方法分析
Feb 05 Javascript
javaScript实现一个队列的方法
Jul 14 Javascript
简单了解常用的JavaScript 库
Jul 16 Javascript
javascript canvas实现雨滴效果
Jun 09 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
递归删除一个节点以及该节点下的所有节点示例
2014/03/19 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
Javascript实现单例模式
2016/01/24 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
js实现网页同时进行多个倒计时功能
2019/02/25 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
实例详解Matlab 与 Python 的区别
2019/04/26 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
input元素的url类型和email类型简介
2012/07/11 HTML / CSS
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
银行演讲稿范文
2014/01/03 职场文书
高一化学教学反思
2014/02/05 职场文书
婚礼司仪主持词
2014/03/14 职场文书
捐资助学倡议书
2014/04/15 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
天下第一关导游词
2015/02/06 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
《合作意向书》怎么写?
2019/08/20 职场文书
2019年12月24日平安夜祝福语集锦
2019/12/24 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
python OpenCV学习笔记
2021/03/31 Python
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL