GZICP.com   
 
    返回首页
    联系我们
 
 
     

JavaScript窗口功能——打开一个新窗口

www.gzicp.com   2005年1月9日 18:07:05
 

  当你点击一个简单的链接打开一个新窗口时,你没有对新窗口任何控制权。浏览器以默认的功能打开新窗口。此外,你也不能使用JavaScript引用新窗口的window对象,因此你不可能操纵新窗口的属性。看看下面的JavaScript语句:

  window.open("http://www.docjs.com/", "win");

  这条语句打开一个新窗口,显示页面http://www.docjs.com/。 新窗口的名字被赋值为 "win"。window对象的open()方法的基本语法是:

  window.open(sURL, sName);

  2个参数都是可选的,如果不想指定URL或者窗口名称,就使用空字符串("").

  sURL 是一个字符串,它指定了要显示文档的URL。如果不指定URL,就产生一个空窗口。 sName 是定义的窗口名字,这个名字被用于<form>或者<a>标记的 TARGET 属性。在Internet Explorer 5 和以后版本,如果定义这个数值为 "_search",那么就将在浏览器的搜索区打开 sURL 。

  如果带有同一参数sName执行window.open()方法2次,会发生什么呢?就象用HTML产生的窗口一样,如果你定义一个已经存在窗口的名字,那么open()方法将简单地利用存在的窗口,而不是打开一个新的。看看下面的脚本程序:

  window.open("http://www.javascript.com/", "win");

  window.open("http://www.docjs.com/", "win");

  执行上面的语句,浏览器将打开一个名字为“win”的新窗口,并在其中显示页面www.javascript.com。第2条语句替换当前窗口内容为页面www.docjs.com。下面的语句产生2个不同的窗口显示各自的内容:

  window.open("http://www.javascript.com/", "win1");

  window.open("http://www.docjs.com/", "win2");

  如果不指定新窗口的名字,浏览器就自动地产生一个新窗口。这同样适用于“_blank”,但是空字符串是另外一回事。对于Internet Explorer和Navigator,有几个重要的区别,如下: 
 


window.open("http://www.cnn.com/");
window.open("http://www.usatoday.com/");
Internet Explorer Navigator
打开2个不同的窗口 打开2个不同的窗口


window.open("http://www.cnn.com/", "_blank");
window.open("http://www.usatoday.com/", "_blank");
Internet Explorer Navigator
打开2个不同的窗口 打开2个不同的窗口


window.open("http://www.cnn.com/", "");
window.open("http://www.usatoday.com/", "");
Internet Explorer Navigator
打开2个不同的窗口 只打开一个窗口,名字为空("")


  下面一行不会用到,只是列举出来。如果想命名窗口,就给出一个可以理解的名字(不是"")。如果不想命名,就干脆不指定这个参数,或者使用特殊的target位置"_blank"。

  关于open()方法的一个重要之处是:open()方法几乎总是以window.open()的形式被调用执行,即使window代表了全局对象从而可以彻底省略。由于document对象也有open()方法,所以当我们想打开一个新窗口时,指定window对象将会清晰必要。在事件处理中,必须指定window.open(),而不能简单地使用open()。由于JavaScript中静态对象的作用范围限制,没有指定对象名字的open()调用等价于document.open()。比如说,当一个HTML按钮的事件处理发生时,范围就包含了按钮对象、表单对象、文档对象,以及窗口对象。这样,如果那样一个事件处理器引用了open()方法,识别器在文档对象就中止,事件处理器打开一个新的文档,而不是打开一个新的窗口。

返回值
  为了合适地引用子窗口,应该将window.open()的结果分配给一个变量。如果窗口被成功地创建,window.open()就返回新窗口对象,或者返回null表示创建失败(比如由于内存不足)。如果你的脚本程序需要引用新窗口的元素,返回值就是非常重要的。然而,当新窗口打开后,并没有“父-子”关系存在。看看下面的语句:

  var recentTips = window.open("http://www.docjs.com/tips/", "tips");

  这里,我们分配给新窗口的window对象一个变量值名叫recentTips。如果在函数中调用window.open()方法,记住一定要省略var关键字,因为变量应该是全局的。否则,window的引用就位于局部变量中,并且当函数执行完毕后就不能被访问。下面的语句在一个alert对话框中显示新窗口的URL:

  alert(recentTips.location.href);

  你也可以通过下面的方法改变新窗口的URL:

  recentTips.location.href = "http://www.usatoday.com/";

  在前面一节中,你已经看到了如何使用HTML链接和表单打开一个新窗口。通过指定target属性或者给window对象的name属性分配一个数值,我们就能够命名窗口。但是怎样才能通过它的html名字来引用存在的窗口呢?答案是简单的。如果你执行了带有空字符串的URL参数以及存在窗口名字的window.open()方法,这个窗口的引用就会被返回。看看下面的链接代码:

  <A HREF="http://www.cnet.com/" TARGET="news">CNET</A>

  当执行下面的语句时,就得到了新窗口的引用:

  var latestNews = window.open("", "news");

让我们再试一试。点击这个链接 CNET,但它装载后,点击下面的按钮:

  这个按钮实际上取回了名字叫做“news”的窗口的引用,并且修改了那个窗口的URL。注意,如果在点击按钮前不点击那个链接,一个新的、空的窗口就被装载(因为指定的窗口名字不存在)。记住,不管窗口中的文档是什么,窗口始终保持着它的名字。下面是这个按钮相关的HTML和JavaScript代码:

  <SCRIPT LANGUAGE="JavaScript">

  <!--

  function changeURL(winName, newURL) {

   win = window.open("", winName);

   win.location.href = newURL;

  }

  // -->

  </SCRIPT>

  <FORM>

  <INPUT TYPE="button" VALUE="Load ZDNet"

  onClick="changeURL(’news’, ’http://www.zdnet.com/’)">

  </FORM>

  前面一段脚本程序表明了如何获取一个存在窗口的引用。如果你仅仅想改变存在窗口的URL,你同样可以直接使用目标页面的URL来调用window.open()方法:

  function changeURL(winName, newURL) {

   win = window.open(newURL, winName);

  }

  在下面一节中,我们将讨论如何定制新窗口的外观



www.csdn.net 听风

相关文章
·JavaScript窗口功能——命名窗口和框架(2005年01月09日)
·JavaScript窗口功能——打开一个新窗口(2005年01月09日)
·JavaScript窗口功能——创建弹出窗口(2005年01月09日)
·JavaScript窗口功能——定制新窗口(2005年01月09日)
·JavaScript窗口功能——发挥窗口特征(2005年01月09日)
·JavaScript窗口功能——检查一个窗口是否存在(2005年01月09日)
·JavaScript窗口功能——关闭窗口(2005年01月09日)
·JavaScript窗口功能——操纵窗口(2005年01月09日)
·JavaScript窗口功能——在窗口中书写内容(2005年01月09日)
·JavaScript窗口功能——引用已打开的窗口(2005年01月09日)
·JavaScript窗口功能——创建对话框(2005年01月09日)
最新文章
·JavaScript窗口功能——命名窗口和框架  (2005年01月09日)
·JavaScript窗口功能——打开一个新窗口  (2005年01月09日)
·JavaScript窗口功能——创建弹出窗口  (2005年01月09日)
·JavaScript窗口功能——定制新窗口  (2005年01月09日)
·JavaScript窗口功能——发挥窗口特征  (2005年01月09日)
·JavaScript窗口功能——检查一个窗口是否存在  (2005年01月09日)
·JavaScript窗口功能——关闭窗口  (2005年01月09日)
·JavaScript窗口功能——操纵窗口  (2005年01月09日)
·JavaScript窗口功能——在窗口中书写内容  (2005年01月09日)
·JavaScript窗口功能——引用已打开的窗口  (2005年01月09日)
·JavaScript窗口功能——创建对话框  (2005年01月09日)





 
 
Copyright © 1999-2005 GZICP.com All Rights Reserved