没装好OFFICE的机器一般都会这样。这个控件要额外提供下载才是。

解决方案 »

  1.   

    你把Listview控件的代码直接添加到页面中,不要采用document.write这样的动态输出方法,这样就能避免这样的问题
      

  2.   

    没装好OFFICE的机器一般都会这样。这个控件要额外提供下载才是。
    ---不对。MSCOMCTL.OCX在该页面自动安装。况且很多时候都运行正常,只是偶尔出错。你把Listview控件的代码直接添加到页面中,不要采用document.write这样的动态输出方法,这样就能避免这样的问题
    ---这样做问题并未解决。
      

  3.   

    对象没有生成你就进行调用造成的。可以进行延时。或者直接写object,不用write
      

  4.   

    可以进行延时。或者直接写object,不用write由于错误仅在个别客户机上出现,无法调试,仅记住了错误行和错误描述。//对象没有生成你就进行调用造成的。
    提示<body onload="init()">出错:缺少对象。当然init里面确实有对write出来的对象进行操作,不过我觉得如果是因为write出来的对象未生成完毕,那么错误不应该是出现在onload那一行,而应该出现在init里操作write出来的对象的那一行吧?
    我在我自己的机器上试了一下,如果把init改成一个未定义的函数名,错误就跟客户机一样。//可以进行延时
    延多少时?随便取一个值恐怕不够严谨。有没有办法让对象创建完毕之后发出一个通知?或者检测对象是否已创建完毕。//或者直接写object,不用write
    据说微软ACTIVEX新机制,如果直接object,在某些版本的IE里需要多点击控件一下以激活控件,而write出来的就不用。非常感谢大家的帮助。不过希望大家可以继续
      

  5.   


    //找台不正常的机,上查看源文件,复制回来分析/直接在那里调一下。源文件不用到不正常的机上去复制,我在我的机器上打开该页面就可以得到源文件。问题是该错误只在极个别的机器上出现,而且也不是经常出现,偶尔才出现一次。前提是WEB服务器端的文件并未有任何改变。
      

  6.   

    onload="init()"其实你能否不用函数,直接运行INIT里面代码。这样可能会有点效果。
    先加载了对象,再调试试。或者可以加上检测对象是否为NULL的代码,然后进行相关操作或者再加载对象,这样应该会减少出错机会。
      

  7.   

    to freelyl(飞翔):
    init()里面代码巨多,不可能不用函数直接运行。检测对象是否为null的代码有的,现在的问题是,错误出在<body onload="init()">处。这个try都不好try。最大的问题是,我基本没有办法调试(无法在别的机器上重现错误)。同时这个页面在绝大多数机器上都运行正常,仅在极少数机器上出现错误,而且也是偶尔才出现错误。
      

  8.   

    晕倒。今天看到两台机器如此了。我在VMWARE 上装了跟他们一样的操作系统(XP+SP2),IE的版本也一样(2900),甚至也装上了跟他们一样的Word2000,整死也重现不了那个错误。
      

  9.   

    你用一个定时器,进行try,如果1分钟之后仍然try不到对象,就alert()用户。
      

  10.   

    你用一个定时器,进行try,如果1分钟之后仍然try不到对象,就alert()用户。
    //问题是现在错误出在<body onload="init()">那行。在init里面的操作都有异常处理,我试过在页面里面不写那段document.write("<object...");在不出错的机器上init()执行都不会报错,错误已经被异常处理掉了。问题是,为什么错误是出在<body onload...>这一行呢??
      

  11.   

    终于查清楚了。是javascript语句过长,超过了1024个字符.以前看浏览器提示的错误只看到最后一条,前面还有一条,就在巨长的那句。
    function init()
    {
    oList.AddRow(....);oList.AddRow(...)......//这行巨长,错误:缺少")",看来被截断了,所以接下来onload自然缺少对象了(缺少函数init())
    }
    <body onload="init()">google看有人遇到过这个问题,不过又说IE4+就没这个问题了,奇怪的是我怎么在IE6上也遇到这个问题,并且是随机出现。难道IE6的javascript引擎有BUG?
      

  12.   

    那行是服务器端根据从数据库里查出来的数据循环生成的。有多少条记录就有多少条oList.AddRow(...),所以巨长。