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 相关文章推荐
jQuery插件开发全解析
Oct 10 Javascript
对于Form表单reset方法的新认识
Mar 05 Javascript
jQuery过滤选择器详解
Jan 13 Javascript
jquery实现全屏滚动
Dec 28 Javascript
js 自带的sort() 方法全面了解
Aug 16 Javascript
js控住DOM实现发布微博效果
Aug 30 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
Apr 19 Javascript
fullPage.js和CSS3实现全屏滚动效果
May 05 Javascript
原生JavaScrpit中异步请求Ajax实现方法
Nov 03 Javascript
如何使用JavaScript实现栈与队列
Jun 24 Javascript
解析JS在获取当前月的最后一天遇到的坑
Aug 30 Javascript
layui 上传图片 返回图片地址的方法
Sep 26 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 session_start()出错原因分析及解决方法
2013/10/28 PHP
php自动载入类用法实例分析
2016/06/24 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
2011/02/25 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
js HTML5上传示例代码完整版
2016/10/10 Javascript
JavaScript获取URL参数的方法之一
2017/03/24 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
2018/09/27 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
2018/09/29 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
TensorFlow实现Batch Normalization
2018/03/08 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
应用化学专业职业生涯规划书
2014/01/22 职场文书
个人近期表现材料
2014/02/11 职场文书
个人授权委托书范文
2014/09/21 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/09/30 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
配置nginx 重定向到系统维护页面
2021/06/08 Servers
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技