当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript窗口功能指南之命名窗口和框架

Javascript
IE bug table元素的innerHTML
Javascript学习笔记1 数据类型
Javascript学习笔记2 函数
Javascript学习笔记3 作用域
Javascript学习笔记4 Eval函数
Javascript学习笔记5 类和对象
Javascript学习笔记6 prototype的提出
Javascript学习笔记7 原型链的原理
Javascript学习笔记8 用JSON做原型
Javascript学习笔记9 prototype封装继承
Javascript 读书笔记索引贴
JavaScript 事件冒泡应用实例分析
JavaScript 事件冒泡简介及应用
Extjs学习笔记之九 数据模型(上)
javascript Object与Function使用
取选中的radio的值
JavaScript 学习笔记(九)call和apply方法
javascript下判断一个对象是否具有指定名称的属性的的代码
Javascript 实现TreeView CheckBox全选效果
jquery插件 cluetip 关键词注释

Javascript 中的 JavaScript窗口功能指南之命名窗口和框架


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 227 ::
收藏到网摘: n/a

JavaScript窗口功能指南之命名窗口和框架
(作者:听风编译 2001年01月19日 11:35)

  当你创建一个框架结构的文档时,<FRAME>标记的NAME属性定义了每一个框架的名字,如下:

  <FRAMESET>

   <FRAME NAME="left" SRC="toolbar.html">

   <FRAME NAME="right" SRC="index.html">

  </FRAMESET>

  在例子中,文档包含2个框架:left和right。在文档toolbar.html中,链接代码就象下面的一样:

  <A HREF="about.html" TARGET="right">About Us</A>

  <A HREF="feedback.html" TARGET="right">Feedback</A>

  注意, <FORM>标记同样支持TARGET属性,它定义了响应表单的目标窗口。而<BAEE>标记则指明了文档中所有链接的通用默认目标窗口:

  <BASE TARGET="right">

  上面的标记定义了页面中所有元素的目标位置。以下的HTML元素支持target属性:<A>、<AREA>、<FORM>。

  在实际应用中,<BASE>元素必须出现在文档的HEAD标记间,要先于任何指向外部资源的元素前。如果在文档中指定了<BASE>标记,那么链接将不再遵循默认的target位置,而是被明确地指向另外一个不同的target位置:

  <HEAD>

  <BASE TARGET="right">

  </HEAD>

  <BODY>

  <A HREF="table.html" TARGET="_self">Table of Contents</A>

  <A HREF="about.html">About Us</A>

  <A HREF="feedback.html">Feedback</A>

  </BODY>

  如上所见,第1个链接的target是 "_self" (带有一个下划线),这表示当点击这个链接时,新文档会在当前活动的窗口中打开。下表列举了HTML中一些特殊的target位置标识:

Target 含义
_blank 在一个新的空窗口中装载文档,新窗口没有命名。
_parent 在链接所在窗口的直接父窗口中装载文档。
_search 在浏览器的搜索区装载文档,注意,这个功能只在Internet Explorer 5 或者更高版本中适用。
_self 在链接所在的窗口中装载文档。
_top 在最上层窗口中装载文档。

  现在我们了解了框架名字,下面将它们与窗口一起工作。当定义target为 "_blank"时,a一个新窗口就会弹出来。比如,如果想让一个链接在新窗口中打开,请使用下面的代码:

  <A HREF="newpage.html" TARGET="_blank">A New Page</A>

  新窗口没有命名,换言之,它不能被其他元素的 TARGET 属性所引用。但是当我们使用一个标准的target名字时,会发生什么呢?请看下面的定义:

  <A HREF="newtip.html" TARGET="tip">A New Tip</A>

  在这种情况下,我们为新窗口提供了一个特殊的名字。 新窗口的名字为 "tip", 因此任何链接或者表单,只要定义了 TARGET="tip", 就会在同一窗口中装载页面。如果没有框架或者窗口匹配指定的target,那么点击链接后将在新窗口中打开。看看下面的例子:

  <A HREF="http://www.ccidnet.com/" TARGET="_blank">CCIDNET</A>

  <A HREF="http://www.ccidnet.com/tech/" TARGET="_blank">技术天地</A>

  看看产生的效果:

CCIDNET、技术天地
  点击第一个链接,将在新窗口中打开文档。点击第二个链接,也将产生一个新窗口。如果再次点击链接,新窗口仍将打开。如你所见,链接每一次被点击都会产生一个新窗口。让我们再试一试下面的例子:

  <A HREF="http://www.ccidnet.com/" TARGET="main">CCIDNET</A>

  <A HREF="http://www.ccidnet.com/tech/" TARGET="main">技术天地</A>  

  效果如下:

CCIDNET、技术天地
  点击第一个链接时,产生一个新窗口。接着点击第二个链接,新文档将出现在刚刚打开的窗口中。新窗口定义了明确的名字,叫做 "main", 所以任何指定了 TARGET="main" 的链接或者表单都会在那个窗口被装载。

名字的属性
  借助JavaScript,我们能够通过窗口的名字属性发现窗口的名字(适用于IE3+, N2+)。同样,我们能够设置一个框架或者窗口的名字属性(适用于IE3+, N3+)。来看看下面的HTML文档(showname.html):

  <HTML>

  <HEAD><TITLE>Display Name</TITLE></HEAD>

  <BODY>

  <SCRIPT LANGUAGE="JavaScript">

  <!--

  alert('The name of this window is: "' + window.name + '"');

  // -->

  </SCRIPT>

  </BODY>

  </HTML>

  再看看下面的链接:

  <A HREF="showname.html" TARGET="_blank">A New Window</A>

  <A HREF="showname.html" TARGET="first">First Window</A>

  <A HREF="showname.html" TARGET="second">Second Window</A>

  <A HREF="showname.html" TARGET="third">Third Window</A>

  文档showname.html包含了一个脚本程序,它负责在一个alert对话框中显示窗口的名字。

  name 属性属于 window 对象。它可以被任何window对象使用,包括框架。例如,下面的语句设置了一个框架窗口的名字:

  parent.frames[1].name = "right";

  当操作框架时, 访问不同层窗口是很简单的。如果想参阅更多细节,请访问 Window References 。

  HTML不能给当前窗口指派名字。就是说,在当前页面不可能通过HTML代码来设置当前窗口的名字。要实现这个目的,只有一个方法,就是给 window.name 属性分配值。下面来试一试,看看如下的代码,它创建了一个简单按钮,点击后设置当前窗口的名字:

  <FORM>

  <INPUT TYPE="button" VALUE="Set Name to myWin" onClick="window.name = 'myWin'">

  </FORM>

  点击按钮后,当前窗口的名字就改变为 "myWin", 除非指派其他的值,它会一直保持。 我们可以在其他窗口中包含一些链接,并定义他们的target位置为myWin,就是 TARGET="myWin" 。

  如果前面你已经设置了当前窗口的名字为myWin,那么链接将在当前窗口打开。下面是新窗口中的代码:

  <A HREF="http://www.docjs.com/" TARGET="myWin">Home</A>

  <A HREF="http://www.docjs.com/tips/" TARGET="myWin">Recent Tips</A>

  方便起见,我们给出能将当前窗口的名字设置为空""的按钮的源码:

  <form>

    <input onClick="window.name = ''" type=button value="Reset Name" name="button2">

  </form>

  你要注意,不要给2个不同的窗口分配同一个名字。如果2个窗口被分配了同一个名字,那么只有一个窗口被关联,另外一个就将被忽视。