Script

本类阅读TOP10

·一个简单的javascript菜单
·网站流量统计代码
·可编辑的 HTML JavaScript 表格控件 DataGrid II
·JavaScript通用库(一)
·在网页中控制wmplayer播放器
·层遇到select框时
·TYPEING TEST ON LINE 在线打字测试 Free Software Javascript (aiiiq)
·javascript表单之间的数据传递!
·让网页自动穿上外套
·搜索gb2312汉字在网上的频率

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
JavaScript窗口功能指南之发挥窗口特征

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

JavaScript窗口功能指南之发挥窗口特征
(作者:听风编译 2001年01月19日 11:35)

  在前面一节中,我们全面接触了JavaScript提供的窗口特征。许多这些特征是基于特殊浏览器的,就是说它们不可能同时在Internet Explorer和Navigator中工作。在这一节中,我们将探索几个有趣的方面,以及一些有用的技巧。

指定窗口尺度
  我们使用参数height、 width、 innerHeight 以及 innerWidth来定义新窗口的尺度。Internet Explorer支持height和width,Navigator则使用innerHeight和innerWidth。Navigator也支持outerHeight和outerWidth特征,它们指定了窗口外围边界的尺度,外围边界包括标题栏、滚动条以及其他操作系统元素。在Internet Explorer中,为达到同样目的,我们使用height、width、innerHeight和innerWidth。每种浏览器都将忽略其他特征,所以当创建新窗口时,就可以定义所有的4个。

  window.open("dimensions.html", "_blank", "height=150,innerHeight=150,width=200,innerWidth=200");

  如果在你的机器上有2种浏览器,你可以比较一下JavaScript的不同窗口尺度特征。

打开一个全屏幕窗口
  Internet Explorer支持fullscreen属性,使用它可以创建一个覆盖全屏的窗口,而不必考虑显示器的实际尺寸。看看下面的例子:

  <SCRIPT LANGUAGE="JavaScript">

  <!--

  var str = "left=0,screenX=0,top=0,screenY=0";

  if (window.screen) {

   var ah = screen.availHeight - 30;

   var aw = screen.availWidth - 10;

   str += ",height=" + ah;

   str += ",innerHeight=" + ah;

   str += ",width=" + aw;

   str += ",innerWidth=" + aw;

  } else {

   str += ",resizable"; // so the user can resize the window manually

  }

  function launchFull(url, name) {

   return window.open(url, name, str);

  }

  var win = launchFull("full1.html", "full");

  // -->

  </SCRIPT>

  让我们看看它是怎样工作的。首先,我们给全局变量str分配一个初始数值,它指定了新窗口位于屏幕的左上角。不要担心这个字符串,在本节稍候将解释它的含义。下一个语句检查浏览器是否支持screen对象。如果不支持,我们就使用resizable特征从而用户可以手工地改变新窗口的大小,最终适应整个屏幕。但是如果浏览器是支持screen对象的,那么就可以充分利用screen.vavilHeight和screen.vavilWidth来决定系统屏幕上工作区域的高度和宽度,包括任何系统元素,比如任务栏。由于height、width、innerHeight以及innerWidth等特征不能精确说明窗口边界,所以必须要减去大概象素的数值。

  如果想充分利用浏览器的fullscreen特征,仅仅加入下面的脚本程序就可以:

  var str = "left=0,screenX=0,top=0,screenY=0,fullscreen";

  我们不需要检查浏览器是否为Internet Explorer,因为当fullscreen特征定义后,其他特征就被忽略。

定义窗口坐标
  我们将使用left、top、screenX和screenY参数来指定新窗口的坐标。Internet Explorer支持left和top,Navigator则使用screenX和screenY。

  window.open("http://www.docjs.com/", "_blank", "left=20,screenX=20,top=40,screenY=40");

  记住,left应该总是与screenX一起定义,top与screenY一起定义。如果你使用过这些特征,你会发现Navigator同样支持left和top。然而,这是一个未公开的操作,所以你不要依赖于此(因为未来的Navigator版本也许不再支持它)。而且,如果对于left和screenX指定了不同的数值,Navigator将使用分配给screenX的数值。同样,如果指定了screenY,Navigator将忽视top。

  记住,这些特征都是以象素为单位的,并且以屏幕的左上角为基点。即使你在框架中调用window.open()方法,指定的值依然以屏幕的边界为准。

  打开一个居中的窗口

  现在你了解了如何放置一个新窗口,下面再添加一些算法。下面的脚本程序打开一个居中的窗口:

  <SCRIPT LANGUAGE="JavaScript">

  <!--

  function launchCenter(url, name, height, width) {

   var str = "height=" + height + ",innerHeight=" + height;

   str += ",width=" + width + ",innerWidth=" + width;

   if (window.screen) {

    var ah = screen.availHeight - 30;

    var aw = screen.availWidth - 10;

    var xc = (aw - width) / 2;

    var yc = (ah - height) / 2;

    str += ",left=" + xc + ",screenX=" + xc;

    str += ",top=" + yc + ",screenY=" + yc;

   }

   return window.open(url, name, str);

  }

  var win = launchCenter('center.html', 'center', 220, 440);

  // -->

  </SCRIPT>

  这段脚本程序非常类似于全屏幕窗口的脚本程序。它使用了screen.availHeight和screen.availWidth属性,同时加上新窗口的期待尺寸,最终计算出窗口左上角的精确位置。如果你很难理解(aw-width)/2的含义,请看看下面的算式:

  (aw / 2) - (width / 2)

  如你所见,它们是一样的,就是从屏幕的中央减去窗口宽度的一半。同样的算法应用于窗口的垂直坐标。

向后兼容的链接
  当我们编写一个脚本程序时,考虑到那些不能使用JavaScript的用户是非常重要的,这常常发生在用户屏蔽掉浏览器中JavaScript功能的情况下。当这种情况发生时,我们应该仍然能够使用HTML装载一个窗口。看看下面的链接:

  <A HREF="http://www.docjs.com/" TARGET="win">Doc JavaScript</A>

  这打开了一个名为win的窗口,在其中装载定义的URL。下面的链接使用了JavaScript完成同样的目的:

  <A HREF="javascript:void(window.open('http://www.docjs.com/', 'win', 'status'))">Doc JavaScript</A>

  基于JavaScript的链接创建了一个简单的窗口,它有一个状态栏,但是不包括其他默认元素(比如工具栏)。然而前面的HTML链接打开的窗口是一个默认的浏览器窗口。2种方法实现了同样的目的。使用JavaScript,我们可以控制新窗口的外观,但是如果浏览器不支持JavaScript,这样的链接就没有用了。所以,我们合并这些链接:

  <A HREF="http://www.docjs.com/" TARGET="win" onClick="window.open('http://www.docjs.com/', 'win', 'status'); return false">Doc JavaScript</A>

  如果JavaScript是激活的,在装载HREF属性定义的URL前,浏览器就执行onClick事件处理程序。由于这个事件处理程序返回false,浏览器将忽略HREF属性,就好像用户根本没有点击链接。事实上,语句return false简单地中止了“点击”。如果浏览器不支持JavaScript,那么就不会运行onClick事件处理程序,因此,象其他HTML链接一样,指定的URL被装载。




相关文章

相关软件




月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有