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 相关文章推荐
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
Feb 07 Javascript
js前台分页显示后端JAVA数据响应
Mar 18 Javascript
js操纵dom生成下拉列表框的方法
Feb 24 Javascript
JavaScript获取当前页面上的指定对象示例代码
Feb 28 Javascript
JS模式之单例模式基本用法
Jun 30 Javascript
跟我学习javascript的函数调用和构造函数调用
Nov 16 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
Dec 08 Javascript
复杂的javascript窗口分帧解析
Feb 19 Javascript
浅谈Vue 数据响应式原理
May 07 Javascript
vue打包的时候自动将px转成rem的操作方法
Jun 20 Javascript
JavaScript 点击触发复制功能实例详解
Nov 02 Javascript
vue实现分页的三种效果
Jun 23 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
我的论坛源代码(一)
2006/10/09 PHP
PHP加速 eAccelerator配置和使用指南
2009/06/05 PHP
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
两千行代码的PHP学习笔记汇总
2014/10/05 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
JS实现的RC4加密算法示例
2018/08/16 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
Python入门篇之字符串
2014/10/17 Python
详解Python爬虫的基本写法
2016/01/08 Python
如何利用Fabric自动化你的任务
2016/10/20 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
如何使用repr调试python程序
2020/02/28 Python
Python celery原理及运行流程解析
2020/06/13 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
英国名牌服装购物网站:OD’s Designer
2019/09/02 全球购物
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
英语专业毕业个人求职自荐信
2013/09/21 职场文书
机械系毕业生求职信
2014/05/28 职场文书
2016师德师风学习心得体会
2016/01/12 职场文书