中华网通行证
用户名 密码
  科技动态 硬件广场 下载基地 网络教室 网络冲浪 科学博览 移动时代 手机上网 桌面壁纸 科技商情  

程序的兼容

你可以用 JavaScript 去得到和改变 CSS-P 元素中的性质. 但由于不 同的浏览器的元素和元素的性质名字有所不同, 我们应该知道如何 处理这种讨厌的情况。在这里, 我们将要探讨如何让你的程序在两 种主要的浏览器 NS4 和 IE4 中都工作.

浏览器检测:

首先, 我们应该知道如何来知道用户用的是哪种浏览器. 下面这段程 序虽然比较简单但足以区别 NS4 和 IE4.

  ns4 = (document.layers)? true:false
  ie4 = (document.all)? true:false

document.layers 是 Netscape 4 专有的, 而 document.all 却是 IE 4 专 有的. 所以检查这些专有 object 存在与否可以帮助我们设立变量 ns4 (为 Netscape 4.0) 和 ie4 (为 Internet Explorer 4.0). 如果 document.layers 存在, 就让 ns4 等于 ture. 如果document.all 存在, 就让 ie4 等于 true. 这样,以后你如果需要知道用户用的是那个浏览器, 检查这两个变量就可以了

  function check() {
    if (ns4) {
      // do something in Netscape Navigator 4.0
    }
    if (ie4) {
      // do something in Internet Explorer 4.0
    }
  }

使用 JavaScript 和 CSS-P:

假如我们有一个如下的 DIV tag:

<DIV ID="blockDiv" STYLE="position:absolute; left:200; top:100">
<IMG SRC="../photo/jie07.jpg" WIDTH=30 HEIGHT=30 BORDER=0>
</DIV>

DIV 的名字是随你起的. 但当你给了它名字以后, JavaScript 就要参 照这个名字来控制它. 下面告诉你 JavaScript 如何参照这个名字的.

对 Netscape 来说, 得到 CSS-P 性质 (property) 的方法如下:

  document.blockDiv.propertyName
或者是
  document.layers["blockDiv"].propertyName

而对于 Internet Explore 来说, 要用

  blockDiv.style.propertyName
或者是
  document.all["blockDiv"].style.propertyName

propertyName 可以是任何一个 DIV 可以用的 CSS-P 的性质, 比 如 left, top, visibility, zIndex, width。

浏览器通用方法 (指针变量):

一个比较好的使得你的程序通用于 Netscape 和 IE 的方法是设立一 个变量. 如果浏览器是 NS, 这个变量指向 document.blockDiv. 如果浏 览器是 IE. 它就指向 blockDiv.style 我们称它为指针变量。请看下面 的语句.

  if (ns4) block = document.blockDiv
  if (ie4) block = blockDiv.style

你可以注意到, 有了这个指针变量, 我们以后可以用简便的方法得 到或改变 CSS-P 的性质. 因为无论你用的是那种浏览器, 对于这个 DIV, 我们都用 block 来表示. 比如你想看看一个名字为 "blockDiv" 的 Div tag 的横向左边坐标是多少, 可以

  block.left

一个实例


这个例子将能出示一个预警窗口告诉你一个 CSS-P 元素的 left, top 和 visiibilty 性质。 这个程序在IE和NS都能工作。这套教程 的目的就是让你能了解如何写出通用的动态网页
  <HTML>
  <HEAD>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    ns4 = (document.layers)? true:false
    ie4 = (document.all)? true:false

    function init() {
      if (ns4) block = document.blockDiv
      if (ie4) block = blockDiv.style
    }
    //-->
    </SCRIPT>
  </HEAD>

  <BODY onLoad="init()">

  <A HREF="javascript:alert(block.left)">left</A> -
  <A HREF="javascript:alert(block.top)">top</A> -
  <A HREF="javascript:alert(block.visibility)">visibility</A>

  <DIV ID="blockDiv" 
	STYLE="position:absolute; left:50; top:100; 
		width:30; visibility:visible;">
  <IMG SRC="block.gif" WIDTH=30 HEIGHT=30 BORDER=0>
  </DIV>

  </BODY>

点这看这个实例如何工作

注意: init() 子 程 序 是 在 BODY onLoad="..." 叫 的。 这 样 它 只 能 在 网 页 所 有 的 内 容 全 部 下 传 以 后 才 被 执 行. 要 不 然 会 因 为 在 有 blockDiv 之 前 而 用 它 而 造 成 网 页 错 误.

 

  《DHTML Builder》 Jie/文


  
相关报道




本站检索



中华网推荐

·国家级治脑病新药思维源
·中藏药治疗脑病新突破
·治类风湿,强直性脊柱炎
·养肾·痛风·长寿
·肝病泌尿脑萎缩新药介绍
·强直性脊柱炎康复乐园
·让中医辩证不孕不育
·国医治股骨头坏死一绝
·乙肝为何久治不愈?
·二千元垄断批发做老板
·中医中药专治前列腺
·治牛皮癣白癜风已成现实
·专治痛风病的白衣天使
·不孕不育的杏林奇葩
·专卖店零售管理系统





   

网络教室编辑信箱