Iframe的那些事

在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素、或者在iframe框架中使用父窗口的元素

js

在父窗口中获取iframe中的元素 

1、

格式:window.frames["iframe的name值"].document.getElementByIdx_x("iframe中控件的ID").click();

实例:window.frames["ifm"].document.getElementByIdx_x("btnOk").click();

2、

格式:

var obj=document.getElementByIdx_x("iframe的name").contentWindow;

var ifmObj=obj.document.getElementByIdx_x("iframe中控件的ID");

ifmObj.click();

实例:

var obj=document.getElementByIdx_x("ifm").contentWindow;

var ifmObj=obj.document.getElementByIdx_x("btnOk");

ifmObj.click();

在iframe中获取父窗口的元素

格式:window.parent.document.getElementByIdx_x("父窗口的元素ID").click();

实例:window.parent.document.getElementByIdx_x("btnOk").click();

jquery

在父窗口中获取iframe中的元素 

1、

格式:$("#iframe的ID").contents().find("#iframe中的控件ID").click();//jquery 方法1

实例:$("#ifm").contents().find("#btnOk").click();//jquery 方法1

2、

格式:$("#iframe中的控件ID",document.frames("frame的name").document).click();//jquery 方法2

实例:$("#btnOk",document.frames("ifm").document).click();//jquery 方法2

在iframe中获取父窗口的元素

格式:$('#父窗口中的元素ID', parent.document).click();

实例:$('#btnOk', parent.document).click();

父窗获取子窗口的IFrame中的JS方法

一、父窗口调用iframe子窗口方法

1、HTML语法:<iframe name="myFrame" src="child.html"></iframe> 2、父窗口调用子窗口:myFrame.window.functionName(); 3、子窗品调用父窗口:parent.functionName(); 简单地说,也就是在子窗口中调用的变量或函数前加个parent.就行 4、父窗口页面源码:

复制代码代码如下:

 

<html> 

<head> 

<script type="text/javascript"> 

function say() { 

alert("parent.html------>I'm at parent.html"); 

function callChild() 

//document.frames("myFrame").f1(); 

myFrame.window.say(); 

</script> 

</head> 

<body> 

<input type=button value="调用child.html中的函数say()" οnclick="callChild()"> 

<iframe name="myFrame" src="child.html"></iframe> 

</body> 

</html> 

 

5、子窗口页面:

复制代码代码如下:

 

<html> 

<head> 

<script type="text/javascript"> 

function say() 

alert("child.html--->I'm at child.html"); 

function callParent() { 

parent.say(); 

</script> 

</head> 

<body> 

<input type=button value="调用parent.html中的say()函数" οnclick="callParent()"> 

</body> 

</html> 

二、iframe 父窗口和子窗口相互的调用方法

1、IE中使用方法: 父窗口调用子窗口:iframe_ID.iframe_document_object.object_attribute = attribute_value 例子:onClick="iframe_text.myH1.innerText='http://www.pint.com';" 子窗口调用父窗口:parent.parent_document_object.object_attribute = attribute_value 例子:οnclick="parent.myH1.innerText='http://www.pint.com';" 2、Firefox中使用方法: 上面在IE下没有问题,但在firefox下不正常。在firefox下,应该是如下调用方法: 父窗口调用子窗口:window.frames["iframe_ID"].document.getElementById("iframe_document_object"­).object_attribute = attribute_value 例: window.frames["iframe_text"].document.getElementById("myH1").innerHTML= "http://hi.jb51.net"; 子窗口调用父窗口:parent.document.getElementById("parent_document_object").object_attribute = attribute_value 例: parent.document.getElementById("myH1").innerHTML = "http://jb51.net"; 3、完整的例子 test.htm

复制代码代码如下:

 

<HTML> 

<HEAD> 

<TITLE> Test Page </TITLE> 

<script src="prototype-1.4.0.js"></script> 

<script language="javascript"> 

function show() 

window.frames["iframe_text"].document.getElementById("myH1").innerHTML = "http://hi.jb51.net"; 

</script> 

</HEAD> 

<BODY> 

<iframe height="350" width="600" src="iframe_test.htm" name="iframe_text"></iframe> 

<form action="" method="post"> 

<input name="haha" id="haha" type="text" maxlength="30" value="haha" /> 

<br /> 

<textarea cols="50" rows="5" id="getAttributeMethod"></textarea> 

<input type="button" onClick="show();" value="提交"/> 

</form> 

<h1 id="myH1">d</h1> 

</BODY> 

</HTML> 

 

frame_test.htm

复制代码代码如下:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 

<title>无标题文档</title> 

</head> 

<script language="javascript"> 

function show() 

parent.document.getElementById("myH1").innerHTML = http://jb51.net; 

</script> 

<body> 

<h1 id="myH1">ha</h1> 

<form action="" method="post"> 

<input name="abc" id="abc" type="text" maxlength="30" value="abc" /> 

<br /> 

<textarea cols="50" rows="10" id="text"></textarea> 

<br /> 

<input type="button" value="提交" οnclick="show();"/> 

</form> 

</body> 

</html> 

test.htm里面firefox下访问iframe 必须用name,不能用id,所以要改为name="iframe_test" 。(http://chenling1018.blog.163.com/blog/static/1480254200811891041694/) 三、在c#中如何动态改变iframe的src值,动态指向一个网页 

1)如果是javascript脚本 给iframe加一个ID如<iframe id=frmList…… 在脚本写 frmList.document.location=strNewUrl 2)如果是后台程序 给iframe加一个ID,再加上runat=server 如<iframe id=frmList runat=server …… 在程序里写 frmList.Attributes.Add("src",strNewUrl);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

异常处理try...catch...throw

C 引入了异常处理机制。其基本思想是&#xff1a;函数 A 在执行过程中发现异常时可以不加处理&#xff0c;而只是“拋出一个异常”给 A 的调用者&#xff0c;假定为函数 B。 拋出异常而不加处理会导致函数 A 立即中止&#xff0c;在这种情况下&#xff0c;函数 B 可以选择捕获 …

Makefile 中:= ?= += =的区别

是最基本的赋值: 是覆盖之前的值? 是如果没有被赋值过就赋予等号后面的值 是添加等号后面的值转载于:https://www.cnblogs.com/mingyunrangwozoudaoxianzai/p/10118039.html

原生JS写Ajax的请求函数

本文主要介绍了如何通过原生JavaScript封装ajax请求&#xff0c;文中给出了具体的实现代码和详细的解释&#xff0c;希望对你有所帮助。 一、JS原生Ajax ajax&#xff1a;一种请求数据的方式&#xff0c;不需要刷新整个页面&#xff1b; ajax的技术核心是 XMLHttpRequest 对象&…

软件工程--第十三周学习进度

第十三周代码量258 所花时间 6h博客量 2篇了解到的知识点 在寻找“水王”程序编写时&#xff0c;学习了一种新的设计思想&#xff0c;两两删除法&#xff0c;最后剩下的就是水王。这种设计思想&#xff0c;感觉可以用到多种编程&#xff0c;感觉很有意思。转载于:https://www.c…

如何使用 tf object detection

# 如何使用 tf object detectionhttps://juejin.i m/entry/5a7976166fb9a06335319080https://towardsdatascience.com/how-to-train-your-own-object-detector-with-tensorflows-object-detector-api-bec72ecfe1d9https://towardsdatascience.com/building-a-toy-detector-with…

WEB文件上传之JQuery ajaxfileupload插件使用(二)

1.JQuery ajaxfileupload插件使用准备 下载地址&#xff1a; http://www.phpletter.com/DOWNLOAD/ 2.原理分析 ajaxfileupload也是利用iframe实现无刷新异步提交&#xff0c;与我的上一篇文章&#xff08;WEB文件上传之apache common upload使用&#xff08;一&#xff09;&…

Navicat安装激活

有条件的同学麻烦不要使用下面的激活步骤&#xff0c;仅供个人学习使用 。。。。。。 。。。。。。 。。。。。。 。。。。。。 一、去官网下载最新Navicat软件https://www.navicat.com.cn/download/navicat-premium 二、去下载激活脚本https://github.com/DoubleLabyrinth/nav…

WEB文件上传之apache common upload使用(一)

文件上传一个经常用到的功能&#xff0c;它有许多中实现的方案。 页面表单 RFC1897规范 http协议上传 页面控件(flash/html5/activeX/applet) RFC1897规范 http协议上传 页面控件(flash/html5/activeX/applet) 自定义数据规范 http协议上传 页面控件(flash/html5/act…

前端CSS学习笔记

一 CSS介绍 层叠样式表(英文全称&#xff1a;Cascading Style Sheets)是一种用来表现HTML&#xff08;超文本标记语言&#xff09;或XML&#xff08;标准通用标记语言的一个子集&#xff09;等文件样式的计算机语言。CSS不仅可以静态地修饰网页&#xff0c;还可以配合各种脚本语…

自律以自救

在一次逻辑思维的跨年晚会上&#xff0c;罗胖曾以「帝王」来形容活在当下移动互联网世界的人们。一个手机 App 可以让你足不出户&#xff0c;享受上百名厨师团队的服务&#xff0c;中饭想吃啥菜式、样品&#xff0c;输入框中一应俱全&#xff0c;光论规格&#xff0c;可能已超过…

Validform使用入门

Validform使用入门 1、引入css 请查看下载文件中的style.css&#xff0c;把里面Validform必须部分复制到你的css中&#xff08;文件里这个注释 "/*以下部分是Validform必须的*/" 之后的部分是必须的&#xff09;。之前发现有部分网友把整个style.css都引用在了页面…

Java爬取并下载酷狗音乐

本文方法及代码仅供学习&#xff0c;仅供学习。 案例&#xff1a; 下载酷狗TOP500歌曲&#xff0c;代码用到的代码库包含&#xff1a;Jsoup、HttpClient、fastJson等。 正文&#xff1a; 1、分析是否可以获取到TOP500歌单 打开酷狗首页&#xff0c;查看TOP500&#xff0c;发现存…

C 表達式及返回值

以下程序的输出结果是__A____。 #include<stdio.h> main() {int i10,j10;printf("%d,%d\n",i,j--); } A、11,10 B、9,10 C、010,9 D、10,9 8.若变量a、i已正确定义&#xff0c;且i已正确赋值&#xff0c;合法的语句是___B___。 A、a1 B、i; C、…

Webpack/Vue-cli两种方式加载markdown文件并实现代码高亮

准备的资源&#xff1a; highlight.js &#xff1a; 实现代码高亮&#xff0c;通过npm install highlight.js -D安装 vue-markdown-loader&#xff1a;解析md文件的必备loader&#xff0c;通过npm install vue-markdown-loader -D安装 下面我们分两个场景来说明一下md文件的…

新浪微博第三方登陆重定向错误23123

新浪微博第三方登陆重定向错误23123 2019年06月02日 13:49:43 温室花朵 阅读数&#xff1a;2更多 个人分类&#xff1a; 第三方微博登陆21323编辑当我们使用微博第三方登陆的时候&#xff0c;发现登陆出错了&#xff0c;错误码为&#xff1a;21323&#xff0c;解决方案如下&…

Utility Manager 的一些百度不了的操作

一进来是不是这样的&#xff01; 那突然出了点问题&#xff0c;咋办呢&#xff01; 就像这样子的&#xff0c; 恢复默认布局就OK啦&#xff01;哈哈哈&#xff0c;太聪明啦&#xff0c;但是百度了好长时间还是找不到啊&#xff0c;怎么办呐&#xff0c;烦死啦&#xff01; 其实…

Echart 5.0+版本报错Error in data(): “TypeError: Cannot read properties of undefined (reading ‘graphic‘)“

首先第一步需要检查echarts的导入方式&#xff0c;在5.0以后的版本&#xff0c;echarts做了比较大的调整&#xff0c;在vue中引入时必须使用如下命令 // import echarts from echarts 这种方式高版本不支持import * as echarts from echartsvue.prototype.$echarts echarts其次…

记录一次内网渗透试验

0x00 前言 目标&#xff1a;给了一个目标机ip&#xff0c;要求得到该服务器权限&#xff0c;并通过该ip渗透至内网控制内网的两台服务器 攻击机&#xff1a;kali (192.168.31.51) 目标机&#xff1a;windows 2003 (192.168.31.196) 0x01 信息收集 nmap端口探测 御剑后台扫描 …

2018-2019 1 20165203 实验五 通用协议设计

2018-2019 1 20165203 实验五 通用协议设计 OpenSSL学习 定义&#xff1a;OpenSSL是为网络通信提供安全及数据完整性的一种安全协议&#xff0c;囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议&#xff0c;并提供了丰富的应用程序供测试或其它目的使用。基本功…

弄懂webpack,只要看这一片就够了(文末有福利)

什么是webpack ​ webpack是什么&#xff0c;官网中是这么说的。 ​ 本质上&#xff0c;webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时&#xff0c;它会递归地构建一个依赖关系图(dependency graph)&#xff0c;其中包…