用event.which,不是keyCode(IE使用)

解决方案 »

  1.   

    netscape6+才是支持 w3c标准比较好的版本
      

  2.   

    加个判断就成了
    if(document.all) //ie
    {
      if(event.keyCode==32)
            event.returnValue=false;}
    else if(document.getElementById) //Netscape6+
    {
      if(event.which==32)
            event.returnValue=false;
    }
    else if(document.layers)  //Netscape4
    {
      if(event.which==32)
            event.returnValue=false;}
      

  3.   

    to zhaoweiwei:
    怎么IE和Netscape里对象还不一样,不都是JS吗?同一种语言在支持它的浏览器语法应该是一样的呀,怎么会这样呢? 我们还怎么编程啊。总不能编两套吧。尤其是多语言版本的,每种语言编两套,那不是翻了四倍?
    另外,else if(document.getElementById) //Netscape6+
    和else if(document.layers) 是什么作用?
      

  4.   

    to fxbird(飞翔鸟)你可以看看书的确
    ns和ie提供了不同的属性名称
    这也就决定了我们必须要在运行程序前必须要判断用户用的是什么样子的浏览器
    else if(document.getElementById) //Netscape6+
    和else if(document.layers) //Netscape4
    这两个语句都是判断用户用的是ns的浏览器
    因为ns是不向下兼容的
    ns4和ns6并不完全一样
      

  5.   

    to zhaoweiwei:
    document.getElementById这不是调用方法吗?怎么能判断出版本呢?
    我是初学者,
    请说详细点
      

  6.   

    是呀这的确是一种方法
    但是这也是一种叫做浏览器嗅探器的代码
    document.all只支持ie
    document.getElementById支持ns6+和ie(如果是ie则在上一步就就判断了所以说这不只是用来判断ns6+的)
    documend.layers则是ns4独有
      

  7.   

    to zhaoweiwei:
    是不是这样理解,
    如果调用浏览器支持的属性或方法,
    会返回一个布尔值,
    不管方法本身是否真的调用,
    是否参数都给齐了?
      

  8.   

    对对可以这样理解
    其实像document.all之类的只要浏览器支持就会返回一个true
      

  9.   

    to zhaoweiwei:
    document.all是什么意思?
      

  10.   

    to zhaoweiwei:
    它有什么作用?请说详细点,
    一直不明白它的作用.
      

  11.   

    to net_lover:
    w3c是什么?
    迷惑中...
      

  12.   

    dom不是JavaScript的一部分,不同浏览器对他的支持不同的。
    w3c是制定规范的组织,可惜好像主流浏览器对他都不怎么感冒,既有标准总是要过了很长时间才得到支持,郁闷
      

  13.   

    to contion:
    javscript中也没有com啊
      

  14.   

    不是com,是dom,文档对象模型,不是语言的一部分,但实际上js脱离不了它