在iframe中优雅地使用父窗口中的$
来源:互联网 发布:汽车刷ecu软件 编辑:程序博客网 时间:2024/05/18 02:44
最近在给项目中的富文本编辑器进行更换。由tinymce改成kindeditor。
之前tinymce是由离职同事引入的。并且对其源码进行了一些修改。增加了一些自定义的功能。这几天给它切换成kindeditor编辑器,并且要将我们自定义的功能也迁进来。
富文本编辑器的内容区一般是iframe中。我要在iframe中引入js代码。
有一些常用的功能需要用到$以及KindEditor中的接口,在iframe中重新引入一个jQuery或KindEditor文件显然是不划算的。那么直接取得两个iframe之外的现成的对象又如何?
直接引入
var $ = parent.$;var KindEditor = parent.KindEditor;
这样的话,我们就可以使用对象的大部分接口方法了。
需要注意的是,由于我们的js的初始化环境是在parent环境,这些接口方法也是在这个环境里生成的,那么由于作用域原理,在库中使用到的document\window等宿主对象也是指向的parent中的对象而不是当前iframe中的对应对象。
所以有些接口不能那么放心地使用。
举个例子:
比如iframe中有一个
<span class="a"></span>
在iframe中输入使用$(‘.a’)是找不到它的。它实际上是在父窗口里面在找。
但是我们可以使用find方法。它是一个相对安全的方法。
var body = document.getElementsByTagName('body')[0];$(body).find('.a');//注意这里的body没有引号
简单讲,如果你发现你在iframe中引入的parent窗口的对象的某些方法没有正常运行,你可能要考虑它的一些作用域引起的问题。
不过其实大多数方法是安全而有效的。比如addClass()、offset()等。
如果方法不是那么有效,那么也是一定有替代方法的。
转载注明出处。
阅读全文
0 0
- 在iframe中优雅地使用父窗口中的$
- 使用jQuery在iframe中访问父窗口中的节点
- 在父窗口中访问iframe中的元素
- jquery js 在父窗口中获取iframe中的元素
- 如何在vi中优雅地使用ex
- 如何在业务设计中优雅地使用JAVA反射
- 在父窗口操作iframe中的对象
- 父窗口中获取iframe中的元素
- 在LaTeX中优雅地插入代码,并使用Consolas字体!
- 优雅地使用SharedPreferences
- 在父窗口中查找iframe中元素的方法
- 在iframe中寻找iframe父类中的元素
- 从iframe中关闭父窗口中的层
- JQUERY 获取IFrame中对象或者在Iframe中获取父窗口中对象
- 如何在 Swift 中优雅地处理 JSON
- 在iOS开发中如何优雅地进行图片缩放?
- Retrofit+RxJava在MVP模式中优雅地处理异常
- 如何利用Github在Markdown中优雅地插入图片
- 京东笔试题——集合
- Exploit-db漏洞库
- log4cxx
- 链栈
- JS 操作COOKIE
- 在iframe中优雅地使用父窗口中的$
- java中的字符串常量池
- dismissViewController实现多个模态视图跳转
- JavaWeb学习总结(十二)——Session
- 什么是WebPack,为什么要使用它?
- SQL注入之手工注入sqli-labs-master
- java发送邮件示例
- JS高级程序设计经典代码与问题
- numpy学习小结(2)