您的位置:寻梦网首页编程乐园CSS 初步DHTML动态网页简明教程
DHTML动态网页简明教程

如何使你编写的DHTML兼容IE和NS浏览器

作者:ahao

由于不同的浏览器的元素和元素的性质名字有所不同, 我们应该知道如何让你的程序在两种主要的浏览器 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:

</p> <div ID="blockDiv" STYLE="position:absolute; left:200; top:100"> <dd>&lt;img SRC="file://D:\dhtmlstudy\dhtml3.htm/xxx.jpg" WIDTH="xx" HEIGHT="xx" BORDER="0">

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 的方法是设立一个变量.

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

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

  block.left

 

 上一节 返回目录 下一节
返回dhtml栏目