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判断文本框内容改变事件的简单实例
Mar 07 Javascript
JS实现简单的键盘打字的效果
Apr 24 Javascript
AngularJS 作用域详解及示例代码
Aug 17 Javascript
ajax级联菜单实现方法实例分析
Nov 28 Javascript
Vue 仿百度搜索功能实现代码
Feb 16 Javascript
vue-router单页面路由
Jun 17 Javascript
基于JS脚本语言的基础语法详解
Jul 22 Javascript
Angularjs单选框相关的示例代码
Aug 17 Javascript
JS数组去重常用方法实例小结【4种方法】
May 28 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
Jul 03 Javascript
Node.js API详解之 module模块用法实例分析
May 13 Javascript
uniapp开发打包多端应用完整方法指南
Dec 24 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
一个更简单的无限级分类菜单代码
2007/01/16 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
jQuery获取Table某列的值(推荐)
2017/03/03 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
详解Python使用tensorflow入门指南
2018/02/09 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
在Python中增加和插入元素的示例
2018/11/01 Python
python学习开发mock接口
2019/04/28 Python
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
《会走路的树》教后反思
2014/04/19 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
2014年生活老师工作总结
2014/12/23 职场文书
患者身份识别制度
2015/08/06 职场文书
HTML常用标签超详细整理
2022/03/19 HTML / CSS
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技