- 浏览: 384834 次
- 性别:
- 来自: 成都
最新评论
-
宋建勇:
你爷爷的,这个很给力啊!找了好久了!赞一个!
maven的属性过滤功能 -
蒲公英的约定:
其實也可以通過尋找id來得到組建,不過還是綁定方便得多。不知道 ...
JSF中UI控件binding属性的用法 -
蒲公英的约定:
...
JSF中UI控件binding属性的用法 -
le5u:
请问,怎么给tableviewer加行编号呀
tableviewer -
Surmounting:
现在火狐好像把 iframe 的 contentDocumen ...
iframe交互使用大全
被嵌套的网页中可以使用parent.【函数名】来访问父级别的js,父级别的网页可以使用window.framename.【函数名】来访问子页面的js
function modifyWH(){
var ifr = document.getElementById("ifcontent");
if (ifr.contentDocument && ifr.contentDocument.body.offsetHeight) {
//在FireFox下获得子Frame窗口宽高的方法
//ifr.width = ifr.contentDocument.body.offsetWidth;
ifr.height = ifr.contentDocument.body.offsetHeight;
//alert(ifr.contentDocument.body.offsetHeight);
}else{
//在IE下获得子Frame窗口宽高的方法
//ifr.width = ifr.Document.body.scrollWidth;
ifr.height = ifr.Document.body.scrollHeight;
//alert(ifr.Document.body.scrollHeight);
}
}
IFrame可以在网页内嵌入另一个页面,类似“画中画”形式。
标记的使用格式是:
<Iframe src="URL" width="x" height="x" scrolling="[OPTION]" frameborder="x"></iframe>
src:文件的路径,既可是HTML文件,也可以是文本、ASP等;
width、height:"画中画"区域的宽与高;
scrolling:当SRC的指定的HTML文件在指定的区域不显不完时,滚动选项,如果设置为NO,则不出现滚动条;如为Auto:则自动出现滚动条;如为Yes,则显示;
FrameBorder:区域边框的宽度,为了让“画中画“与邻近的内容相融合,常设置为0。
比如:
<Iframe src=".com/xyz"; width="250" height="200" scrolling="no" frameborder="0"></iframe>
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
窗口与浮动帧之间的相互控制
在脚本语言与对象层次中,包含Iframe的窗口我们称之为父窗体,而浮动帧则称为子窗体,弄清这两者的关系很重要,因为要在父窗体中访问子窗体或相反都必须清楚对象层次,才能通过程序来访问并控制窗体。
1、在父窗体中访问并控制子窗体中的对象
在父窗体中,Iframe即子窗体是document对象的一个子对象,可以直接在脚本中访问子窗体中的对象。
现在就有一个问题,即,我们怎样来控制这个Iframe,这里需要讲一下Iframe对象。当我们给这个标记设置了ID 属性后,就可通过文档对象模型DOM对Iframe所含的HTML进行一系列控制。
比如在example.htm里嵌入test.htm文件,并控制test.htm里一些标记对象:
<Iframe src="test.htm" id="test" width="250" height="200" scrolling="no" frameborder="0"></iframe>
test.htm文件代码为:
<html>
<body>
<h1 id="myH1">hello,my boy</h1>
</body>
</html>
如我们要改变ID号为myH1的H1标记里的文字为hello,my dear,则可用:
document.myH1.innerText="hello,my dear"(其中,document可省)
在example.htm文件中,Iframe标记对象所指的子窗体与一般的DHTML对象模型一致,对对象访问控制方式一样,就不再赘述。
2、在子窗体中访问并控制父窗体中对象
在子窗体中我们可以通过其parent即父(双亲)对象来访问父窗口中的对象。
如example.htm:
<html>
<body onclick="alert(tt.myH1.innerHTML)">
<Iframe name="tt" src="frame1.htm" width="250" height="200" scrolling="no" frameborder="0"></iframe>
<h1 id="myH2">hello,my wife</h1>
</body>
</html>
如果要在frame1.htm中访问ID号为myH2中的标题文字并将之改为"hello,my friend",我们就可以这样写:
parent.myH2.innerText="hello,my friend"
这里parent对象就代表当前窗体(example.htm所在窗体),要在子窗体中访问父窗体中的对象,无一例外都通过parent对象来进行。
Iframe虽然内嵌在另一个HTML文件中,但它保持相对的独立,是一个“独立王国“哟,在单一HTML中的特性同样适用于浮动帧中。
试想一下,通过Iframe标记,我们可将那些不变的内容以Iframe来表示,这样,不必重复写相同的内容,这有点象程序设计中的过程或函数,减省了多少繁琐的手工劳动!另外,至关重要的是,它使页面的修改更为可行,因为,不必因为版式的调整而修改每个页面,你只需修改一个父窗体的版式即可了。
要注意的是,Nestscape6.0之前版本不支持Iframe标记。
例子:
1:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
<iframe src="页面" width="宽度" height="高度" align="排列可以是left或right,center" scrolling="是否有滚动条可以填no或yes"></iframe>
<IFRAME frameBorder=0 frameSpacing=0 height=25 marginHeight=0 marginWidth=0 scrolling=no name=main src="bgm/bgm.html" width=300></IFRAME>
2:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
用了iframe后 发现滚动条不漂亮 想用2个图片来代替↑↓
应该怎么实现呢?
回答:
用下列代码替换网页的<title>..</title>
<SCRIPT LANGUAGE="javascript">
function scroll(n)
{temp=n;
Out1.scrollTop=Out1.scrollTop+temp;
if (temp==0) return;
setTimeout("scroll(temp)",80);
}
</SCRIPT>
<TABLE WIDTH="330">
<TR>
<TD WIDTH="304" VALIGN="TOP" ROWSPAN="2" >
<DIV ID=Out1 STYLE="width:100%; height:100;overflow: hidden ;border-style:dashed;border-width: 1px,1px,1px,1px;">
文字<BR> 文字<BR>
文字<BR>
文字<BR>
文字
<BR>
<BR>
</DIV>
</TD>
<TD WIDTH="14" VALIGN="TOP"><IMG SRC="photo/up0605.gif" WIDTH="14" HEIGHT="20" onmouseover="scroll(-1)" onmouseout="scroll(0)" onmousedown="scroll(-3)" BORDER="0" ALT="按下鼠标速度会更快!"></TD>
</TR>
<TR>
<TD WIDTH="14" VALIGN="BOTTOM"><IMG SRC="photo/down0605.gif" onmouseover="scroll(1)" onmouseout="scroll(0)" onmousedown="scroll(3)" BORDER="0" WIDTH="15" HEIGHT="21" ALT="按下鼠标速度会更快!"></TD>
</TR>
</TABLE>
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
下面这段代码可以实现IFrame自适应高度,即随着页面的长度,自动适应以免除页面和IFrame同时出现滚动条。
源代码如下
<script type="text/javascript">
//** iframe自动适应页面 **//
//输入你希望根据页面高度自动调整高度的iframe的名称的列表
//用逗号把每个iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一个窗体,则不用逗号。
//定义iframe的ID
var iframeids=["test"]
//如果用户的浏览器不支持iframe是否将iframe隐藏 yes 表示隐藏,no表示不隐藏
var iframehide="yes"
function dyniframesize()
{
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++)
{
if (document.getElementById)
{
//自动调整iframe高度
dyniframe[dyniframe.length] = document.getElementById(iframeids);
if (dyniframe && !window.opera)
{
dyniframe.style.display="block"
if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) //如果用户的浏览器是NetScape
dyniframe.height = dyniframe.contentDocument.body.offsetHeight;
else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) //如果用户的浏览器是IE
dyniframe.height = dyniframe.Document.body.scrollHeight;
}
}
//根据设定的参数来处理不支持iframe的浏览器的显示问题
if ((document.all || document.getElementById) && iframehide=="no")
{
var tempobj=document.all? document.all[iframeids] : document.getElementById(iframeids)
tempobj.style.display="block"
}
}
}
if (window.addEventListener)
window.addEventListener("load", dyniframesize, false)
else if (window.attachEvent)
window.attachEvent("onload", dyniframesize)
else
window.onload=dyniframesize
</script>
function modifyWH(){
var ifr = document.getElementById("ifcontent");
if (ifr.contentDocument && ifr.contentDocument.body.offsetHeight) {
//在FireFox下获得子Frame窗口宽高的方法
//ifr.width = ifr.contentDocument.body.offsetWidth;
ifr.height = ifr.contentDocument.body.offsetHeight;
//alert(ifr.contentDocument.body.offsetHeight);
}else{
//在IE下获得子Frame窗口宽高的方法
//ifr.width = ifr.Document.body.scrollWidth;
ifr.height = ifr.Document.body.scrollHeight;
//alert(ifr.Document.body.scrollHeight);
}
}
IFrame可以在网页内嵌入另一个页面,类似“画中画”形式。
标记的使用格式是:
<Iframe src="URL" width="x" height="x" scrolling="[OPTION]" frameborder="x"></iframe>
src:文件的路径,既可是HTML文件,也可以是文本、ASP等;
width、height:"画中画"区域的宽与高;
scrolling:当SRC的指定的HTML文件在指定的区域不显不完时,滚动选项,如果设置为NO,则不出现滚动条;如为Auto:则自动出现滚动条;如为Yes,则显示;
FrameBorder:区域边框的宽度,为了让“画中画“与邻近的内容相融合,常设置为0。
比如:
<Iframe src=".com/xyz"; width="250" height="200" scrolling="no" frameborder="0"></iframe>
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
窗口与浮动帧之间的相互控制
在脚本语言与对象层次中,包含Iframe的窗口我们称之为父窗体,而浮动帧则称为子窗体,弄清这两者的关系很重要,因为要在父窗体中访问子窗体或相反都必须清楚对象层次,才能通过程序来访问并控制窗体。
1、在父窗体中访问并控制子窗体中的对象
在父窗体中,Iframe即子窗体是document对象的一个子对象,可以直接在脚本中访问子窗体中的对象。
现在就有一个问题,即,我们怎样来控制这个Iframe,这里需要讲一下Iframe对象。当我们给这个标记设置了ID 属性后,就可通过文档对象模型DOM对Iframe所含的HTML进行一系列控制。
比如在example.htm里嵌入test.htm文件,并控制test.htm里一些标记对象:
<Iframe src="test.htm" id="test" width="250" height="200" scrolling="no" frameborder="0"></iframe>
test.htm文件代码为:
<html>
<body>
<h1 id="myH1">hello,my boy</h1>
</body>
</html>
如我们要改变ID号为myH1的H1标记里的文字为hello,my dear,则可用:
document.myH1.innerText="hello,my dear"(其中,document可省)
在example.htm文件中,Iframe标记对象所指的子窗体与一般的DHTML对象模型一致,对对象访问控制方式一样,就不再赘述。
2、在子窗体中访问并控制父窗体中对象
在子窗体中我们可以通过其parent即父(双亲)对象来访问父窗口中的对象。
如example.htm:
<html>
<body onclick="alert(tt.myH1.innerHTML)">
<Iframe name="tt" src="frame1.htm" width="250" height="200" scrolling="no" frameborder="0"></iframe>
<h1 id="myH2">hello,my wife</h1>
</body>
</html>
如果要在frame1.htm中访问ID号为myH2中的标题文字并将之改为"hello,my friend",我们就可以这样写:
parent.myH2.innerText="hello,my friend"
这里parent对象就代表当前窗体(example.htm所在窗体),要在子窗体中访问父窗体中的对象,无一例外都通过parent对象来进行。
Iframe虽然内嵌在另一个HTML文件中,但它保持相对的独立,是一个“独立王国“哟,在单一HTML中的特性同样适用于浮动帧中。
试想一下,通过Iframe标记,我们可将那些不变的内容以Iframe来表示,这样,不必重复写相同的内容,这有点象程序设计中的过程或函数,减省了多少繁琐的手工劳动!另外,至关重要的是,它使页面的修改更为可行,因为,不必因为版式的调整而修改每个页面,你只需修改一个父窗体的版式即可了。
要注意的是,Nestscape6.0之前版本不支持Iframe标记。
例子:
1:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
<iframe src="页面" width="宽度" height="高度" align="排列可以是left或right,center" scrolling="是否有滚动条可以填no或yes"></iframe>
<IFRAME frameBorder=0 frameSpacing=0 height=25 marginHeight=0 marginWidth=0 scrolling=no name=main src="bgm/bgm.html" width=300></IFRAME>
2:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
用了iframe后 发现滚动条不漂亮 想用2个图片来代替↑↓
应该怎么实现呢?
回答:
用下列代码替换网页的<title>..</title>
<SCRIPT LANGUAGE="javascript">
function scroll(n)
{temp=n;
Out1.scrollTop=Out1.scrollTop+temp;
if (temp==0) return;
setTimeout("scroll(temp)",80);
}
</SCRIPT>
<TABLE WIDTH="330">
<TR>
<TD WIDTH="304" VALIGN="TOP" ROWSPAN="2" >
<DIV ID=Out1 STYLE="width:100%; height:100;overflow: hidden ;border-style:dashed;border-width: 1px,1px,1px,1px;">
文字<BR> 文字<BR>
文字<BR>
文字<BR>
文字
<BR>
<BR>
</DIV>
</TD>
<TD WIDTH="14" VALIGN="TOP"><IMG SRC="photo/up0605.gif" WIDTH="14" HEIGHT="20" onmouseover="scroll(-1)" onmouseout="scroll(0)" onmousedown="scroll(-3)" BORDER="0" ALT="按下鼠标速度会更快!"></TD>
</TR>
<TR>
<TD WIDTH="14" VALIGN="BOTTOM"><IMG SRC="photo/down0605.gif" onmouseover="scroll(1)" onmouseout="scroll(0)" onmousedown="scroll(3)" BORDER="0" WIDTH="15" HEIGHT="21" ALT="按下鼠标速度会更快!"></TD>
</TR>
</TABLE>
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
下面这段代码可以实现IFrame自适应高度,即随着页面的长度,自动适应以免除页面和IFrame同时出现滚动条。
源代码如下
<script type="text/javascript">
//** iframe自动适应页面 **//
//输入你希望根据页面高度自动调整高度的iframe的名称的列表
//用逗号把每个iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一个窗体,则不用逗号。
//定义iframe的ID
var iframeids=["test"]
//如果用户的浏览器不支持iframe是否将iframe隐藏 yes 表示隐藏,no表示不隐藏
var iframehide="yes"
function dyniframesize()
{
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++)
{
if (document.getElementById)
{
//自动调整iframe高度
dyniframe[dyniframe.length] = document.getElementById(iframeids);
if (dyniframe && !window.opera)
{
dyniframe.style.display="block"
if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) //如果用户的浏览器是NetScape
dyniframe.height = dyniframe.contentDocument.body.offsetHeight;
else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) //如果用户的浏览器是IE
dyniframe.height = dyniframe.Document.body.scrollHeight;
}
}
//根据设定的参数来处理不支持iframe的浏览器的显示问题
if ((document.all || document.getElementById) && iframehide=="no")
{
var tempobj=document.all? document.all[iframeids] : document.getElementById(iframeids)
tempobj.style.display="block"
}
}
}
if (window.addEventListener)
window.addEventListener("load", dyniframesize, false)
else if (window.attachEvent)
window.attachEvent("onload", dyniframesize)
else
window.onload=dyniframesize
</script>
评论
1 楼
Surmounting
2012-06-20
现在火狐好像把 iframe 的 contentDocument 也取消了……
于是不知道怎么在 JavaScript 中调用某一个 iframe 里边的 JavaScript 了。
于是不知道怎么在 JavaScript 中调用某一个 iframe 里边的 JavaScript 了。
发表评论
-
已有.so库,用swig再编译JNI库
2020-01-16 09:19 324更多请点击链接查看详情 -
rails cancan AssociationTypeMismatch
2013-12-29 13:32 1145ActiveRecord::AssociationType ... -
Websphere中JCA连接共享策略
2011-04-20 13:18 2143Websphere中JCA连接共享策略 (学习笔记 ) ... -
类似于‘路过网’的一个随机聊天网站
2011-01-17 15:16 2813在2009年闲来没事儿写的一个类似‘路过网’的一个随机聊天网站 ... -
两年后的自己—-------------------“散”文
2011-01-07 22:05 51为什么给散字打个引 ... -
javascript ext
2008-09-02 11:43 932<script> var x ... -
將myeclipse項目轉換成WTP項目
2008-08-25 09:21 2949将一个已经存在的项目转换成WTP 的Web项目 修改ecli ... -
DBCP出现连接无法回收的解决方案
2008-08-22 22:27 1272在配置hibernate连接释放的时候千万不要忘了 ... -
模式对话框传值
2008-08-22 15:28 1959<script language=javascrip ... -
自动支持事务的类
2008-08-21 10:26 1024自动支持事务的类 package aaa; i ... -
基于SCHEMA的AOP配置
2008-08-18 10:09 1029其实本列想用JAVA5的注释功能的,但是想了想:当我发布了程序 ... -
https introduce in acegi book
2008-08-14 14:52 1078If session hijacking is conside ... -
动态创建Authentication对象
2008-08-13 17:29 1337WebApplicationContext webApplic ... -
CVS创建用户
2008-04-20 15:23 1415CVS添加用户的过程 D:\cvs\CVSROOT>se ... -
INFORMIX的操作
2008-03-15 10:00 1465/*#include <decimal.h> #i ... -
根类加载器的一个特性
2007-12-22 21:55 1147java 代码 public cl ... -
FireBug A Good JavaScript DEBUG Tool
2007-12-22 09:02 1292Firebug integrates with Firefo ... -
Interface Tag
2007-12-14 11:17 1040<link rel="stylesheet ... -
rtexprvalue
2007-12-14 10:26 2650其实以前也有写过自定义标签, 但是没有注意到过<rtex ... -
asfsdafsadf
2007-12-11 11:18 1224Dear all, I am pleased to ann ...
相关推荐
### Iframe交互语法详解 #### 一、Iframe基本语法及属性 Iframe(Inline Frame)是一种HTML标签,用于在当前网页中嵌入另一个网页或文档。它支持一系列的属性来控制显示效果。 ##### 1. 基本语法: ```html ...
在这个“unigui_网页iframe交互_完善_03”的主题中,我们将深入探讨Unigui如何与网页中的IFrame元素进行交互,并实现功能的完善。 首先,IFrame(Inline Frame)是HTML中的一个元素,用于在网页中嵌入另一个文档,...
通过以上所述,我们可以看到在Unigui框架下实现网页iframe交互的完整流程,包括了iframe的基本使用、通信机制、跨域处理以及性能优化等方面。理解并熟练掌握这些知识点,将有助于开发出功能丰富且用户友好的Web应用...
在Unigui应用中,可以通过JavaScript代码与IFrame交互,例如: ```javascript var iframe = document.getElementById('myIframe'); iframe.onload = function() { // 在IFrame加载完成后执行的代码 }; iframe...
在IT行业中,FLEX与JavaScript的数据交互以及Google插件IFrame的使用是Web开发中的重要技术环节。FLEX是一款基于Adobe Flash Player的富互联网应用程序(RIA)开发框架,而JavaScript则是网页开发的标准脚本语言。当...
总的来说,理解和掌握iframe的使用,以及如何实现自适应高度,对于提升网页交互体验至关重要。同时,封装JavaScript函数是提高代码复用性和维护性的良好实践,尤其是在大型项目中。通过深入学习和实践,我们可以更好...
综上所述,理解并掌握Unigui框架下的IFrame交互技术,不仅涉及HTML和JavaScript的基本知识,还需要对跨域通信、事件处理、数据交换以及性能优化有深入的理解。通过熟练运用这些知识点,开发者可以构建出功能强大且...
然而,在使用`iframe`进行内外交互时,不同的浏览器对于获取`iframe`内部`window`对象的方法存在差异。例如,某些浏览器可能使用`window`,而有些则使用`contentWindow`等。本文将详细介绍一种通用的方法,以确保`...
2. **内容隔离**:使用 Iframe 可以将一些不希望直接与主页面交互的内容隔离开来,比如第三方提供的内容。 3. **安全隔离**:对于不信任的第三方内容,可以使用 Iframe 来加载,以减少对主页面的安全威胁。 4. **多...
在某些应用场景中,比如集成第三方服务或者在单页应用中嵌入其他网页,我们可能需要在 Vue 应用与 iframe(内联框架)之间进行信息交互。本文将深入探讨如何在 Vue 项目中实现这种交互。 首先,`iframe` 是一种 ...
本文将详细讲解如何在Flex中使用`iframe`。 1. **iframe介绍** `iframe`,全称"Inline Frame",是一种HTML元素,允许在单个HTML文档中嵌入另一个HTML文档。在Flex中,我们不能直接使用HTML的`iframe`标签,但可以...
尽管Flex主要处理矢量图形和交互性,但通过使用HTMLComponent类,我们可以集成HTML内容,包括IFrame。HTMLComponent允许我们在Flex应用中嵌入HTML元素,并通过ActionScript与它们进行交互。 当遇到IFrame消失的问题...
在这个主题中,“lhgdialog文件加跨iframe框架使用”意味着我们将探讨如何在含有iframe的页面结构中利用lhgDialog进行交互。 首先,我们来看一下lhgDialog的基本用法。lhgDialog提供了丰富的选项和方法,可以定制...
`iframe`常被用来实现页面的动态加载、内容的分隔以及不同页面间的交互,尤其是在复杂的Web应用中,它扮演着重要的角色。`Default(iframe).rar`这个压缩包文件提供了关于`.NET`环境下`iframe`简单使用的实例。 1. *...
本实例“iframe对另一个iframe控制的Demo”展示了如何通过JavaScript或者jQuery实现一个iframe对另一个iframe的交互,以及如何控制iframe的显示与隐藏。这种技术广泛应用于构建复杂的Web应用程序,如页面内的多窗口...
在IT行业中,网页开发是一项重要的任务,而框架和iframe的使用是其中不可或缺的部分。"可以左右拖动的iframe框架"是一种创新的实现方式,它允许用户通过鼠标在水平方向上移动iframe,从而提供了更灵活的网页布局和...
所以自己对跨域有一定的概念性了解,知道什么是跨域以及解决跨域的方法,但是具体实际从来没有操作过,直到最近在公司项目中,遇到了一个需要使iframe跨域进行POST提交的实际案例,我才明白具体如何使用iframe进行...
然而,在处理多个iframe交互时,可能会遇到一个棘手的问题——双iframe互相刷新进入死循环。这个问题通常发生在两个或多个iframe之间尝试通过JavaScript互相重载对方,导致无限循环,严重影响用户体验并可能导致...
综上所述,"js调用-嵌入iframe"涉及到的主要知识点包括IFrame的基本使用、JavaScript与IFrame的交互以及测试中的注意事项。理解并掌握这些内容,对于网页开发尤其是动态内容加载和页面组件的复用具有重要意义。