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 相关文章推荐
html的DOM中document对象images集合用法实例
Jan 21 Javascript
javascript 数组操作详解
Jan 29 Javascript
基于jquery实现智能表单验证操作
May 09 Javascript
原生JavaScript编写canvas版的连连看游戏
May 29 Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 Javascript
详解vue-cli + webpack 多页面实例应用
Apr 25 Javascript
在bootstrap中实现轮播图实例代码
Jun 11 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
Jan 09 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
May 09 jQuery
JS 设计模式之:工厂模式定义与实现方法浅析
May 06 Javascript
关于vue 结合原生js 解决echarts resize问题
Jul 26 Javascript
微信小程序实现身份证取景框拍摄
Sep 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
php中函数的形参与实参的问题说明
2010/09/01 PHP
php 中英文语言转换类代码
2011/08/11 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
js function使用心得
2010/05/10 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
简介AngularJS的视图功能应用
2015/06/17 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
浅析vue-router原理
2018/10/19 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
python实现猜拳游戏项目
2020/11/30 Python
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
环境科学专业个人求职的自我评价
2013/11/28 职场文书
高二物理教学反思
2014/02/08 职场文书
经典广告词大全
2014/03/14 职场文书
《观舞记》教学反思
2014/04/16 职场文书
一年级评语大全
2014/04/23 职场文书
公司离职证明样本
2014/09/13 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB
Navicat Premium自定义 sql 标签的创建方式
2022/09/23 数据库