JavaScript窗口功能指南之命名窗口和框架[1]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 hktl 的 blog

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'">

本文关键:JavaScript窗口功能
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top