第48章
作者:佚名    更新:2021-12-03 10:35
  Microsoft 的目的是用它取代 ActiveX 控件。HTML 组件是封装的对象,也像 ActiveX 控件一样是“自包含”的,可以在开发完后发布给任何人。使用 HTML 组件有很多好处。
  ActiveX 控件的一个缺点是:在使用前必须在客户机上安装注册。而 HTML 控件是和主文档一样随时由用户下载到客户机的。对于 DHTML 作者来说,HTML 控件更有吸引力,因为他们可以使用已经很熟悉的语言 DHTML 来开发自己的控件和组件。
  HTC 提供了一种简单的机制在脚本中实现 DHTML 行为。一个 HTC 文件就是一个以 .htc 为扩展名存储的 HTML 文件,它包含脚本和一组 HTC 特有的自定义元素。这些元素描述了 HTML 组件定义的属性、方法和事件。在脚本中可以通过它们各自的 ID 属性访问所有 HTC 元素。这样,可以通过脚本动态操纵 HTC 元素的所有属性和方法。
  我们能用 HTC 实现以下行为:
  描述属性和方法:通过 PROPERTY 和 METHOD 元素定义属性和方法;
  描述自定义事件:通过 EVENT 元素定义,使用元素的 fire() 方法在它们所在的页面里引发这些事件。事件的环境可以通过 createEventObject() 方法设置;
  在它们所在的页面里访问 DHTML 对象模型:HTC 中的 object 元素返回它所附属的元素,通过这个对象,HTC 能访问他所在的文档及其对象模型(属性、方法和事件)。
  接受通报:当使用 ATTACH 元素时,浏览器向 HTC 通报标准 DHTML 事件和两个 HTC 专有 事件,oncontentready 和 ondocumentready。
  HTC 封装了行为的定义,Internet Explorer 5.0 首先提出了行为这个概念。在 Internet Explorer 5.0 概览中介绍了行为这个概念。在 HTC 中使用行为封装的好处是不能从它们的元素标记中将它们删掉。在 IE 5.0 里,可以通过脚本从元素中除去行为。在 IE 5.5 里,元素始终存在,并且不能将它们和原来的行为分开。
  85,Q:当刷新或关闭 IE 时打开一个窗口
  A:
  function openwin()
  { window.open('apage.htm')}
  86,Q:网页中应用 open 函数打开窗口的一个技巧
  A:window.open 函数应用在链接中可以有 2 种形式,即
  和
  但当该链接所在的网页在帧中时,就只能使用第二种,第一种会多产生 1 个包含无用信息的窗口。此外,第二种方法对于用图片做超链接也很方便,形式为
  87,Q:把滚动条放在浏览器窗口的左边
  A:在 。注意对于已经排好版的网页,会使网页左右产生镜像颠倒。实际上 RTL 即 Right to Left 的意思,它规定了网页中的文字方向。正常的网页文字方向默认为 LTR。
  88,Q:怎样把 PHP 的一个数组传递给 javascript 的一个数组?
  A:用 javascript 定义一个数组比如 list=new array(),在 php 中有一个数组 $a[],如果要把数组 $a[]的值传递给 list 怎么办呢?
  <?php
  echo "";
  echo "list=new Array();";
  for(i=0;i<count($a);i++)
  { echo "list[i]=" . $a[$i];}
  echo "";
  ?>
  以上代码只是表述一个思想,其实在 Asp、Jsp 中也同样可以借鉴使用。
  89,Q:网页上传后为什么看不到更新效果?
  A:如果上传真的没有问题的话,请删掉本地机器中的网页临时缓冲文件试试。同时,有些网站(如 China.com)要在更新几十分钟到几小时之后才能看到更新结果。
  90,Q:在 IE 子窗口能调用父窗口的函数(function)吗?
  A:可以。例如,父窗口这样写:
  ……
  在子窗口中这样写:
  或者干脆这样写:
  91,Q:在 Windows 桌面上建立网站链接的快捷方式
  A:
  var WshShell = new ActiveXObject("WScript.Shell");
  strDesktop = WshShell.SpecialFolders("Desktop");
  var oUrlLink = WshShell.CreateShortcut(strDesktop + "\\十万个为什么.url");
  oUrlLink.TargetPath = "http://100000.home.sohu.com";
  oUrlLink.Save();
  92,Q:在桌面上建立应用程序的快捷方式
  A:以在桌面上建立 Notepad.exe 的快捷方式为例:
  var WSHShell = WScript.CreateObject("WScript.Shell");
  //Read desktop path using WshSpecialFolders object
  var DesktopPath = WSHShell.SpecialFolders("Desktop");
  //Create a shortcut object on the desktop
  var MyShortcut = WSHShell.CreateShortcut(DesktopPath + "\\notepad 的快捷方式.lnk");
  //Set shortcut object properties and save it
  MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings("%windir%\\notepad.exe");
  MyShortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings("%windir%");
  MyShortcut.WindowStyle = 1;
  MyShortcut.Description = "Shortcut Script 脚本";
  MyShortcut.Hotkey = "CTRL+Alt+F";
  MyShortcut.IconLocation = WSHShell.ExpandEnvironmentStrings("%windir%\\notepad.exe, 0");
  MyShortcut.Save();
  WScript.Echo("成功建立桌面上 Notepad 的快捷方式");
  93,Q:在收藏夹中加入 Url 的快捷方式
  A:
  var WshShell = new ActiveXObject("WScript.Shell");
  strFav = WshShell.ExpandEnvironmentStrings("%windir%\\Favorites");
  var MyFav = WshShell.CreateShortcut(strFav + "\\我的十万个为什么.url");
  MyFav.TargetPath = "http://100000.home.sohu.com";
  MyFav.Save();
  94,Q:屏蔽网页中的错误提示信息
  A:在网页的
  95,Q:控制网页表格的边框显示
  A:(1)、控制表格的边框:
  表格标签  有一个 Frame 属性,可以控制表格的边框:
  frame=box 显示所有边框
  frame=void 不显示所有边框
  frame=above 只显示上边框
  frame=below 只显示下边框
  frame=hsides 只显示上下边框
  frame=vsides 只显示左右边框
  frame=lhs 只显示左边框
  frame=rhs 只显示右边框
  (2)、控制表格行与列的分隔线:
  表格标签  有一个 Rules 属性,可以控制表格的分隔线:
  Rules=all 显示所有分隔线
  Rules=none 不显示任何分隔线
  Rules=rows 只显示行与行之间的分隔线
  Rules=cols 只显示列与列之间的分隔线
  (3)、用表格制作线条:
  以下代码可以实现一条线段:
  96,Q:关于表格中的  标签以及表格的列分组
  A: ,它有 span、align 等属性,举例如下:
  97,Q:保护自己的网页文本和图片:
  A:
  (1)、自己辛苦创作或收集的文章被别人“^C^V”偷了去,谁心里都不会舒服的。