【学习】如何用jQuery获取iframe中的元素
(我的博客网站中的原文:http://www.xiaoxianworld.com/archives/292,欢迎遇到的小伙伴常来瞅瞅,给点评论和建议,有错误和不足,也请指出。)
说实在的,以前真的很少用到iframe,可最近公司把主要精力放在了研发后台系统上,所以iframe的出场就高了。今天写一个小知识,如何获取iframe中的元素。js原生方法我就不写了,毕竟还是对jquery情有独钟,用到的是contents()方法,请看官方解释:http://www.w3school.com.cn/jquery/traversing_contents.asp

所以说,用contents()是一定能获取到iframe中的元素的,但是必须在同一个域,这里就引出“跨域”的问题,以下是百度出来的知识点:
什么是跨域,简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象。

详细请查看这篇文章:http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html
所以呢,我们在主页面去访问iframe中的元素,给其加一个js事件,是不起作用的。写一个最最简单的alert弹出,在页面中,有一个iframe,其src为a.html,在a.html中有一个按钮,class起名btn。在主页面中写上如下js代码:
$(function(){
var btn=$(this).contents().find(".btn");
btn.click(function(){
alert(1);
});
});
这时点击这个按钮,是没有任何反应的(实例请点击查看)。
所以,要修改,给iframe加一个load()即可:
$(function(){
$(".my-iframe").load(function(){
var btn=$(this).contents().find(".btn");
btn.click(function(){
alert(1);
});
});
});
还有一点要注意,如果iframe中没有引入jquery库文件,那么在主页面中引入的库文件,一定在放在iframe之前,放其之后是不起作用的。而如果iframe中也引入了jquery库文件,则主页面中的库文件放在任何位置都可以了。
好了,今天只写这一个小问题吧,关于iframe还有很多麻烦的事情,改天再总结一下其他的。
【学习】如何用jQuery获取iframe中的元素的更多相关文章
- Js/Jquery获取iframe中的元素
转载: Js/Jquery获取iframe中的元素 - - ITeye技术网站http://java-my-life.iteye.com/blog/1275205 在web开发中,经常会用到ifram ...
- Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法
在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素.或者在iframe框架中使用父窗口的元素 js 在父窗口中获取iframe中的元素 1. 格式:window ...
- Jquery获取iframe中的元素
iframe与父页面之间相互获取元素的方法: 1.从父页面中获取iframe页面中的元素: 用法: $(window.frames["iframe_include_adverse" ...
- js 获取iframe中的元素
今天要修改编辑器插件中的元素遇到的问题 jquery 在父窗口中获取iframe中的元素 1.Js代码 格式:$("#iframe的ID").contents().find(&qu ...
- 父窗口中获取iframe中的元素
js 在父窗口中获取iframe中的元素 1. 格式:window.frames["iframe的name值"].document.getElementById("ifr ...
- 获取父窗口元素或者获取iframe中的元素(相同域名下)
jquery方法 在父窗口中获取iframe中的元素 //方法1 $("#iframe的ID").contents().find("iframe中的元素"); ...
- 使用jquery操作iframe中的元素
使用jquery操作iframe中的元素<iframe src="/test/demo.htm" width="99%" height="300 ...
- 获取iframe中的元素
父窗口中获取iframe中的元素 var ifr = document.getElementById('suggustion').contentWindow.document.body; 在ifram ...
- 在iframe窗体内 获取父级的元素;;在父窗口中获取iframe中的元素
在iframe中获取父窗口的元素 $(‘#父窗口中的元素ID’, parent.document).click(); 在父窗口中获取iframe中的元素 $(“#iframe的ID”).content ...
随机推荐
- 【Alpha阶段】第四次 Scrum Meeting
每日任务 1.本次会议为第 四次 Meeting会议: 2.本次会议在上午09:35,大课间休息时间在禹州楼召开,召开本次会议为20分钟,分析完善接下来的任务: 一.今日站立式会议照片 二.每个人的工 ...
- GUI(国际象棋棋盘)
package com.niit.javagui; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridB ...
- 201521123069 《Java程序设计》第1周学习总结
1. 本章学习总结 Java语言的发展.特点(面向对象.简单性.平台无关性) 认识并区分JVM(Java虚拟机),JRE(Java执行环境),JDK(Java开发工具包) 安装好JDK,设置Path变 ...
- 201521123063 《Java程序设计》 第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图.Onenote或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 1.1 建立数据库test.表students. ...
- JAVA课程设计——“小羊吃蓝莓”小游戏
JAVA课程设计--"小羊吃蓝莓"小游戏 1. 团队课程设计博客链接 http://www.cnblogs.com/HXY071/p/7061216.html 2. 个人负责模块或 ...
- Java课程设计--GUI密码生成器201521123033
1.团队课程设计题目 基于GUI的密码生成器 团队博客链接 2.个人负责模块 (1)界面设计 (2)部分错误输入的提示 (3)一键复制密码功能的实现 3.个人代码的提交记录截图 4.个人代码展示以及代 ...
- 201521123074 《Java程序设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 Q1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...
- 域名解析>>"记录类型" 说明
(1)A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录. 说明:用户可以将该域名下的网站服务器指向到自己的web server上.同时也可以设置自己域名的二级域名. (2)MX ...
- 数据库复用代码【c3p0配置文件、数据库连接池】
前言 为了复用,记载一些以前写过的工具类.方法 c3p0配置文件[c3p0-config.xml] <?xml version="1.0" encoding="UT ...
- Oracle中Union与Union All的区别(适用多个数据库)
Oracle中Union与Union All的区别(适用多个数据库) 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或 ...