对frameset、frame、iframe的js操作

对frameset、frame、iframe的js操作框架编程概述一个HTML页面可以有一个或多个子框架,这些子框架以<iframe>来标记,用来显示一个独立的HTML页面。

这里所讲的框架编程包括框架的自我控制以及框架之间的互相访问,例如从一个框架中引用另一个框架中的JavaScript变量、调用其他框架内的函数、控制另一个框架中表单的行为等。

框架间的互相引用一个页面中的所有框架以集合的形式作为window对象的属性提供,例如:window.frames 就表示该页面内所有框架的集合,这和表单对象、链接对象、图片对象等是类似的,不同的是,这些集合是document的属性。

因此,要引用一个子框架,可以使用如下语法:window.frames["frameName"];window.frames.frameNamewindow.frames[index]其中,window字样也可以用self代替或省略,假设frameName为页面中第一个框架,则以下的写法是等价的:self.frames["frameName"]self.frames[0]frames[0]frameName每个框架都对应一个HTML页面,所以这个框架也是一个独立的浏览器窗口,它具有窗口的所有性质,所谓对框架的引用也就是对window对象的引用。

有了这个window对象,就可以很方便地对其中的页面进行操作,例如使用window.document对象向页面写入数据、使用window.location属性来改变框架内的页面等。

下面分别介绍不同层次框架间的互相引用:1.父框架到子框架的引用知道了上述原理,从父框架引用子框架变的非常容易,即:window.frames["frameName"];这样就引用了页面内名为frameName的子框架。

如果要引用子框架内的子框架,根据引用的框架实际就是window对象的性质,可以这样实现:window.frames["frameName"].frames["frameName2"];这样就引用到了二级子框架,以此类推,可以实现多层框架的引用。

2.子框架到父框架的引用每个window对象都有一个parent属性,表示它的父框架。

如果该框架已经是顶层框架,则window.parent还表示该框架本身。

3.兄弟框架间的引用如果两个框架同为一个框架的子框架,它们称为兄弟框架,可以通过父框架来实现互相引用,例如一个页面包括2个子框架:<frameset rows="50%,50%"><frame src="1.html" name="frame1" /><frame src="2.html" name="frame2" /></frameset>在frame1中可以使用如下语句来引用frame2:self.parent.frames["frame2"];4.不同层次框架间的互相引用框架的层次是针对顶层框架而言的。

当层次不同时,只要知道自己所在的层次以及另一个框架所在的层次和名字,利用框架引用的window对象性质,可以很容易地实现互相访问,例如:self.parent.frames["childName"].frames["targetFrameName"];5.对顶层框架的引用和parent属性类似,window对象还有一个top属性。

它表示对顶层框架的引用,这可以用来判断一个框架自身是否为顶层框架,例如://判断本框架是否为顶层框架if(self==top){//dosomething}改变框架的载入页面对框架的引用就是对window对象的引用,利用window对象的location属性,可以改变框架的导航,例如:window.frames[0].location="1.html";这就将页面中第一个框架的页面重定向到1.html,利用这个性质,甚至可以使用一条链接来更新多个框架。

<frameset rows="50%,50%"><frame src="1.html" name="frame1" /><frame src="2.html" name="frame2" /></frameset><!--somecode--><a href="frame1.location='3.html;frame2.location='4.html'" onclick="">link</a><!--somecode-->引用其他框架内的JavaScript变量和函数在介绍引用其他框架内JavaScript变量和函数的技术之前,先来看以下代码:<script language="JavaScript" type="text/javascript"><!--function hello(){alert("hello,ajax!");}window.hello();//--></script>如果运行了这段代码,会弹出“hello,ajax!”的窗口,这正是执行hello()函数的结果。

那为什么hello()变成了window对象的方法呢?因为在一个页面内定义的所有全局变量和全局函数都是作为window对象的成员。

例如:var a=1;alert(window.a);就会弹出对话框显示为1。

同样的原理,在不同框架之间共享变量和函数,就是要通过window对象来调用。

例如:一个商品浏览页面由两个子框架组成,左侧表示商品分类的链接;当用户单击分类链接时,右侧显示相应的商品列表;用户可以单击商品旁的【购买】链接将商品加入购物车。

在这个例子中,可以利用左侧导航页面来存储用户希望购买的商品,因为当用户单击导航链接时,变化的是另外一个页面,即商品展示页面,而导航页面本身是不变的,因此其中的JavaScript变量不会丢失,可以用来存储全局数据。

其实现原理如下:假设左侧页面为link.html,右侧页面为show.html,页面结构如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title> New Document </title></head><frameset cols="20%,80%"><frame src="link.html" name="link" /><frame src="show.html" name="show" /></frameset></html>在show.html中展示的商品旁边可以加入这样一条语句:<a href="void(0)" onclick="self.parent.link.addToOrders(32068)">加入购物车</a>其中link表示导航框架,在link.html页面中定义了arrOrders数组来存储商品的id,函数addToOrders()用来响应商品旁边【购买】链接的单击事件,它接收的参数id表示商品的id,例子中是一个id为32068的商品:<script language="JavaScript" type="text/javascript"><!--var arrOrders=new Array();function addToOrders(id){arrOrders.push(id);}//--></script>这样,在结帐页面或是购物车浏览页面就可以用arrOrders来获取所有准备购买的商品。

框架可以使一个页面划分为功能独立的多个模块,每个模块之间彼此独立,但又可以通过window对象的引用来建立联系,是Web开发中的一个重要机制。

页面内引用此页面中Iframe页面内的控件的值可直接写:function test() {var num = window.iframename.inputtextname.value;alert( num );}此页面中的Iframe要调用页面中的js代码时可直接写:<input value="点击" type="button" onclick="window.parent.test()" />。

合集下载

js 使用iframe 方法

js 使用iframe 方法

js 使用iframe 方法如何使用JavaScript 中的iframe 方法一、什么是iframe 方法iFrame 是HTML 中的一个标签,可以用来在当前页面嵌入另一个页面。

类似于在一个页面中嵌套了另一个完整的页面,并且可以对嵌套的页面进行操作。

在JavaScript 中,我们可以使用iframe 方法来对iFrame 进行控制和操作。

二、如何在HTML 中添加iFrame在HTML 中添加iFrame 非常简单,只需要使用`<iframe>` 标签,并设置src 属性为要嵌入的页面的URL。

例如:html<iframe src="这样,就在当前页面中创建了一个iFrame,并将页面嵌入其中。

三、使用JavaScript 操控iFrame1. 获取iFrame 引用要在JavaScript 中操作一个iFrame,首先需要获取该iFrame 的引用。

我们使用`contentWindow` 属性来获取iFrame 文档对象的引用。

例如:javascriptvar iframe = document.getElementsByTagName('iframe')[0];var iframeContentWindow = iframe.contentWindow;上述代码中,我们首先获取了第一个iframe 元素,然后使用`contentWindow` 属性获取了iFrame 内的文档对象。

2. 在iFrame 中执行JavaScript获取了iFrame 的引用后,我们可以在其中执行JavaScript 代码。

使用`contentWindow` 的`eval` 方法来执行JavaScript 代码。

例如:javascriptvar iframe = document.getElementsByTagName('iframe')[0];var iframeContentWindow = iframe.contentWindow;在iFrame 中执行JavaScript 代码iframeContentWindow.eval('alert("Hello, iFrame!");');上面的代码将在iFrame 中执行JavaScript 代码,并弹出一个包含"Hello, iFrame!" 的弹窗。

selenium学习教程之定位以及切换frame(iframe)

selenium学习教程之定位以及切换frame(iframe)

selenium学习教程之定位以及切换frame(iframe)总有⼈看不明⽩,以防万⼀,先在开头⼤写加粗说明⼀下:frameset不⽤切,frame需层层切!很多⼈在⽤selenium定位页⾯元素的时候会遇到定位不到的问题,明明元素就在那⼉,⽤firebug也可以看到,就是定位不到,这种情况很有可能是frame在搞⿁(原因之⼀,改天专门说说定位不到元素,可能的⼀些原因及处理办法)。

frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,⽽frame与iframe对selenium定位⽽⾔是⼀样的,selenium有⼀组⽅法对frame进⾏操作。

1.怎么切到frame中(switch_to.frame())selenium提供了switch_to.frame()⽅法来切换frameswitch_to.frame(reference)不得不提到switch_to_frame(),很多⼈在这样写的时候会发现,这句话被划上了删除线,原因是这个⽅法已经out了,之后很有可能会不⽀持,建议的写法是switch_to.frame()reference是传⼊的参数,⽤来定位frame,可以传⼊id、name、index以及selenium的WebElement对象,假设有如下HTML代码 index.html:<html lang="en"><head><title>FrameTest</title></head><body><iframe src="a.html" id="frame1" name="myframe"></iframe></body></html>想要定位其中的iframe并切进去,可以通过如下代码:from selenium import webdriverdriver = webdriver.Firefox()driver.switch_to.frame(0) # 1.⽤frame的index来定位,第⼀个是0# driver.switch_to.frame("frame1") # 2.⽤id来定位# driver.switch_to.frame("myframe") # 3.⽤name来定位# driver.switch_to.frame(driver.find_element_by_tag_name("iframe")) # 4.⽤WebElement对象来定位通常采⽤id和name就能够解决绝⼤多数问题。

js的iframe用法

js的iframe用法

js的iframe用法在JavaScript中,`<iframe>`元素是用于在一个HTML文档中嵌套另一个HTML文档的标签。

以下是一些`<iframe>`的基本用法:1.创建一个iframe元素:```html<iframe src="目标文档的URL"></iframe>```这将在当前文档中创建一个空白的`<iframe>`,其中`src`属性指定了要嵌套的目标文档的URL。

2.指定iframe的高度和宽度:```html<iframe src="目标文档的URL"width="500"height="300"></iframe>```使用`width`和`height`属性可以设置`<iframe>`的宽度和高度。

3.通过JavaScript控制iframe:```html<iframe id="myFrame"src="目标文档的URL"width="500"height="300"></iframe><script>//通过JavaScript获取iframe元素var iframe=document.getElementById("myFrame");//改变iframe的高度iframe.height="400";//改变iframe的内容iframe.src="新的目标文档的URL";</script>```您可以通过JavaScript获取`<iframe>`元素,并在运行时修改其属性,例如改变高度或更改目标文档。

js获取iframe 方法

js获取iframe 方法

js获取iframe 方法摘要:1.介绍iframe2.JavaScript 获取iframe 的方法3.实例:使用JavaScript 操作iframe正文:一、介绍iframeiframe(Inline Frame)是一种内嵌式网页,它可以在网页中嵌入另一个网页。

iframe 被广泛应用于网页设计,因为它可以让网页设计师在一个页面上展示多个网页,而不需要打开多个浏览器窗口。

iframe 元素通常用于实现一些特定的功能,如在线调查、广告投放等。

二、JavaScript 获取iframe 的方法在JavaScript 中,我们可以使用`contentWindow`或`contentDocument`属性来访问和操作iframe 中的内容。

下面介绍如何使用这两种方法获取iframe:1.使用`contentWindow`属性`contentWindow`属性用于访问iframe 中的全局对象。

首先,你需要获取iframe 元素,然后使用`contentWindow`属性访问iframe 中的内容。

下面是一个示例:```javascriptvar iframe = document.getElementById("myIframe");var iframeWin = iframe.contentWindow;```2.使用`contentDocument`属性`contentDocument`属性用于访问iframe 中的文档对象模型(DOM)。

与`contentWindow`类似,首先需要获取iframe 元素,然后使用`contentDocument`属性访问iframe 中的内容。

下面是一个示例:```javascriptvar iframe = document.getElementById("myIframe");var iframeDoc = iframe.contentDocument;```三、实例:使用JavaScript 操作iframe假设我们有一个简单的网页,包含一个iframe 元素,如下所示:```html<!DOCTYPE html><html><head><title>操作iframe 示例</title></head><body><h1>操作iframe 示例</h1><iframe id="myIframe" src="other.html" width="300"height="200"></iframe><button onclick="changeIframeContent()">更改iframe 内容</button><script src="script.js"></script></body></html>```在这个示例中,我们有一个名为`other.html`的简单网页,它包含一个段落元素。

javascript中的iframe基本用法

javascript中的iframe基本用法

javascript中的iframe基本用法iframe是HTML中的一种元素,它可以嵌入其他网页内容到一个网页中,提供了一种简单的方式来展示其他网页的内容。

在JavaScript中,我们可以使用iframe来加载和操作iframe中的内容,从而实现一些特殊的功能和效果。

一、基本用法1.创建iframe元素:在HTML代码中,可以使用<iframe>标签来创建一个iframe元素。

例如:```html<iframesrc="other_page.html"width="500"height="300"></ifr ame>```上面的代码创建了一个宽为500像素、高为300像素的iframe元素,并指定了其内容为“other_page.html”。

2.获取iframe元素:在JavaScript中,可以使用document对象的getElementById()方法或getElementsByTagName()方法来获取iframe元素。

例如:```javascriptvariframe=document.getElementById("myIframe");```上面的代码获取了一个id为“myIframe”的iframe元素。

3.操作iframe内容:可以通过改变iframe元素的src属性来加载不同的页面,也可以通过读取iframe元素的内容来获取iframe中的数据。

例如:```javascript//加载其他页面iframe.src="other_page.html";//读取iframe中的数据variframeContent=iframe.contentWindow.document.body.inner HTML;```上面的代码分别加载了其他页面并读取了iframe中的HTML内容。

js中iframe调用父页面的方法

js中iframe调用父页面的方法

在 JavaScript 中使用 iframe 调用父页面的方法在前端开发中,经常会遇到需要在 iframe 中调用父页面的方法的情况。

iframe 是一种嵌入式窗体,可以将其他网页嵌入到当前页面中。

在某些场景下,我们需要在 iframe 中调用父页面的方法,实现双向通信和交互效果。

本文将介绍如何在JavaScript 中使用 iframe 调用父页面的方法,并提供一些常见的应用场景和示例代码。

1. 如何获取父页面的方法要调用父页面的方法,首先需要获取到父页面的 window 对象。

window 对象代表一个浏览器窗口或一个 iframe,通过它可以访问和操作当前页面的各种属性和方法。

在 iframe 中,可以通过 window.parent 来获取父页面的 window 对象。

下面是一个简单的示例,展示了如何获取父页面的方法:// 在 iframe 当中var parentWindow = window.parent;在上述代码中,使用 window.parent 将父窗口的 window 对象赋值给parentWindow 变量。

之后可以使用 parentWindow 来调用父页面的方法。

2. 调用父页面的方法获取到父页面的 window 对象之后,就可以使用它来调用父页面的方法了。

调用父页面的方法与调用当前页面的方法类似,只需要使用父页面的 window 对象作为调用者即可。

下面是一个简单的示例,展示了如何在 iframe 中调用父页面的方法:// 在 iframe 当中var parentWindow = window.parent;parentWindow.myFunction(); // 调用父页面的 myFunction 方法在上述代码中,通过 parentWindow 调用了父页面的 myFunction 方法。

3. 示例应用场景3.1 数据传递和通信一个常见的应用场景是在 iframe 中进行数据传递和通信。

jsp框架frameset和frame的区别和用法(转:zph_0629的日志-网易博客)

jsp框架frameset和frame的区别和⽤法(转:zph_0629的⽇志-⽹易博客)【注】可以通过对框架的命名,实现jsp页⾯的target设置⾸先搞清楚框架的两个标签:frameset和frame.1.frameset:声明页⾯是采⽤了框架技术Java代码:<frameset rows="60,*" frameborder="1" border="0" bordercolor="#000FFF" framespacing="1">lt;/frameset>rows="60,*"是把页⾯分为上下两个部分,rows="*,*,*"是把页⾯分成上中下3个部分cols="60,*"是把页⾯分为左右两个部分,以此类推....省略其中⽅法和属性描述2.frame:简单的说framset是页⾯分布的结构,那么frame就是结构中的内容了把页⾯分为上下两个部分,下部分⼜分成左右两个⼩模块组成,代码如下:<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>例⼦</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><frameset rows="70,*" cols="*" frameborder="No" border="0"framespacing="1"><framesrc="inc/top.jsp"name="topFrame" scrolling="No" noresize="noresize" id="topFrame"title="topFrame" /><frameset cols="160,*" frameborder="No" border="0" framespacing="1"><framesrc="inc/menu.jsp"src="inc/controlMenu.jsp"name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame"title="leftFrame" /><framesrc="exclusiveUpdateCar.jsp"name="mainFrame" noresize="noresize" id="mainFrame" title="mainFrame" /><!--注意id="mainFrame"和 menu.jsp中的target="mainFrame"..看这就明⽩了。

js获取并操作iframe中元素的方法

js获取并操作iframe中元素的方法
在JavaScript中,可以通过以下步骤获取并操作iframe中的元素:
1. 首先,你需要获取到iframe的引用。

你可以通过`()`或`()`等方法来获取iframe元素。

```javascript
var iframe = ('myIframe');
```
2. 然后,你需要确保你正在尝试访问的元素是iframe内的同源元素。

同源策略是浏览器的安全机制,它阻止了不同源的网页之间的相互访问。

如果iframe和主页面不是同源的,那么你将无法访问iframe内的元素。

3. 一旦你获取到了iframe的引用,并且iframe内的元素是同源的,你就可以使用`contentWindow`属性来访问iframe的window对象,然后使用这个window对象来访问和操作iframe内的元素。

```javascript
var iframeContent = ;
var iframeDocument = ;
var iframeElement = ('myElement');
```
4. 最后,你可以使用各种DOM方法来操作这个元素,比如更改它的文本内容、更改它的样式、添加事件监听器等。

```javascript
= 'New text';
= 'red';
('click', function() { ('Clicked!'); });
```
请注意,如果你正在尝试操作的是跨域的iframe,那么你将无法访问其内容,因为浏览器的同源策略会阻止这种访问。

js调用iframe里的方法

js调用iframe里的方法在前端开发中,我们经常需要在一个页面中嵌入另一个页面或者组件,这时候就会用到 iframe 元素。

iframe 是一个 HTML 元素,它可以在当前页面中嵌入另一个页面。

但是,在实际开发中,我们可能需要在父页面中调用 iframe 中的方法,这就需要使用 JavaScript 来实现。

如何调用 iframe 中的方法?首先,在父页面中获取到 iframe 元素的引用。

可以通过以下方式来获取:```var iframe = document.getElementById('myIframe');```其中,'myIframe' 是 iframe 元素的 id。

然后,通过获取到的引用来访问 iframe 中的方法。

例如,如果我们要调用名为 'myFunction' 的函数,则可以使用以下代码:```iframe.contentWindow.myFunction();```其中,contentWindow 属性是 iframe 的一个内置对象,它表示iframe 中加载的文档窗口。

因此,通过 contentWindow 属性可以访问到 iframe 中加载文档窗口中的全局变量和函数。

如果要向 iframe 中传递参数,则可以将参数作为函数的参数传递给myFunction() 方法:```iframe.contentWindow.myFunction(param1, param2);```注意事项1. 调用 iframe 中的方法必须在同一域名下进行。

如果父页面和子页面不在同一域名下,则无法访问子页面中的内容。

2. 如果子页面还未加载完毕,则可能会出现无法访问子页面中的内容的问题。

因此,在调用子页面中的方法之前,需要确保子页面已经加载完毕。

3. 在使用 iframe 时,应该注意安全性问题。

如果 iframe 中加载了不可信任的内容,则可能会存在安全隐患。

js 调用iframe内的方法

js 调用iframe内的方法一、背景介绍在网页开发中,经常会使用iframe标签来嵌入其他网页或者页面片段。

但是,如果需要在主页面中调用iframe内部的方法,就需要使用JavaScript来实现。

二、获取iframe对象要调用iframe内部的方法,首先需要获取到iframe对象。

可以通过以下代码实现:```javascriptvar iframe = document.getElementById('myIframe');```其中,'myIframe'是iframe标签的id属性值。

三、获取iframe内部window对象获取到iframe对象后,需要获取到其内部的window对象。

可以通过以下代码实现:```javascriptvar iframeWin = iframe.contentWindow;```其中,contentWindow是iframe对象的一个属性,表示该iframe 所包含的窗口(即其内部window对象)。

四、调用方法获取到了iframe内部的window对象后,就可以直接调用其中定义的方法了。

例如,在子页面中定义了一个名为test()的函数,在主页面中就可以通过以下代码来调用它:```javascriptiframeWin.test();```五、注意事项1. 调用跨域的子页面中定义的方法时会报错。

因为浏览器出于安全考虑不允许跨域访问。

2. 在IE浏览器下,由于其安全机制限制,在访问跨域子页面时可能会出现“拒绝访问”错误。

3. 获取到子页面window对象后要确保该窗口已经加载完成,否则可能会出现访问不到子页面中定义的方法的情况。

六、完整代码示例```html<!DOCTYPE html><html><head><title>调用iframe内部方法示例</title></head><body><!-- 定义一个iframe标签 --><iframe id="myIframe" src="child.html"></iframe><script type="text/javascript">window.onload = function() {// 获取iframe对象var iframe =document.getElementById('myIframe');// 获取iframe内部window对象var iframeWin = iframe.contentWindow;// 调用子页面中定义的test()函数iframeWin.test();}</script></body></html>```七、总结通过以上步骤,我们可以在主页面中调用嵌入的子页面中定义的方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档