页面中有MSCOMCTL.OCX里的ListView控件,在某些机器上body 的onload执行会出错? 没装好OFFICE的机器一般都会这样。这个控件要额外提供下载才是。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你把Listview控件的代码直接添加到页面中,不要采用document.write这样的动态输出方法,这样就能避免这样的问题 没装好OFFICE的机器一般都会这样。这个控件要额外提供下载才是。---不对。MSCOMCTL.OCX在该页面自动安装。况且很多时候都运行正常,只是偶尔出错。你把Listview控件的代码直接添加到页面中,不要采用document.write这样的动态输出方法,这样就能避免这样的问题---这样做问题并未解决。 对象没有生成你就进行调用造成的。可以进行延时。或者直接写object,不用write 可以进行延时。或者直接写object,不用write由于错误仅在个别客户机上出现,无法调试,仅记住了错误行和错误描述。//对象没有生成你就进行调用造成的。提示<body onload="init()">出错:缺少对象。当然init里面确实有对write出来的对象进行操作,不过我觉得如果是因为write出来的对象未生成完毕,那么错误不应该是出现在onload那一行,而应该出现在init里操作write出来的对象的那一行吧?我在我自己的机器上试了一下,如果把init改成一个未定义的函数名,错误就跟客户机一样。//可以进行延时延多少时?随便取一个值恐怕不够严谨。有没有办法让对象创建完毕之后发出一个通知?或者检测对象是否已创建完毕。//或者直接写object,不用write据说微软ACTIVEX新机制,如果直接object,在某些版本的IE里需要多点击控件一下以激活控件,而write出来的就不用。非常感谢大家的帮助。不过希望大家可以继续 //找台不正常的机,上查看源文件,复制回来分析/直接在那里调一下。源文件不用到不正常的机上去复制,我在我的机器上打开该页面就可以得到源文件。问题是该错误只在极个别的机器上出现,而且也不是经常出现,偶尔才出现一次。前提是WEB服务器端的文件并未有任何改变。 onload="init()"其实你能否不用函数,直接运行INIT里面代码。这样可能会有点效果。先加载了对象,再调试试。或者可以加上检测对象是否为NULL的代码,然后进行相关操作或者再加载对象,这样应该会减少出错机会。 to freelyl(飞翔):init()里面代码巨多,不可能不用函数直接运行。检测对象是否为null的代码有的,现在的问题是,错误出在<body onload="init()">处。这个try都不好try。最大的问题是,我基本没有办法调试(无法在别的机器上重现错误)。同时这个页面在绝大多数机器上都运行正常,仅在极少数机器上出现错误,而且也是偶尔才出现错误。 晕倒。今天看到两台机器如此了。我在VMWARE 上装了跟他们一样的操作系统(XP+SP2),IE的版本也一样(2900),甚至也装上了跟他们一样的Word2000,整死也重现不了那个错误。 你用一个定时器,进行try,如果1分钟之后仍然try不到对象,就alert()用户。 你用一个定时器,进行try,如果1分钟之后仍然try不到对象,就alert()用户。//问题是现在错误出在<body onload="init()">那行。在init里面的操作都有异常处理,我试过在页面里面不写那段document.write("<object...");在不出错的机器上init()执行都不会报错,错误已经被异常处理掉了。问题是,为什么错误是出在<body onload...>这一行呢?? 终于查清楚了。是javascript语句过长,超过了1024个字符.以前看浏览器提示的错误只看到最后一条,前面还有一条,就在巨长的那句。function init(){oList.AddRow(....);oList.AddRow(...)......//这行巨长,错误:缺少")",看来被截断了,所以接下来onload自然缺少对象了(缺少函数init())}<body onload="init()">google看有人遇到过这个问题,不过又说IE4+就没这个问题了,奇怪的是我怎么在IE6上也遇到这个问题,并且是随机出现。难道IE6的javascript引擎有BUG? 那行是服务器端根据从数据库里查出来的数据循环生成的。有多少条记录就有多少条oList.AddRow(...),所以巨长。 用JS写的asp出了点状况 关于层的问题? 有点急! js重置html:select问题???? 如何得到一个radio的值 能否让一个层自由地游离于框架?急!!!! 这串代码我怎么就显示不出效果呢 帮我看看好吗 控件数组中某个控件如何取得自身的下标? js作用域链和函数表达式的深入讨论 如何修改IE中的ActiveX安全性 求web版本画流程图工具(需要能部署到本地) 求助,怎么用javascript来控制纵打、横打?? 求正则表达式:4位整数(包括0)
---不对。MSCOMCTL.OCX在该页面自动安装。况且很多时候都运行正常,只是偶尔出错。你把Listview控件的代码直接添加到页面中,不要采用document.write这样的动态输出方法,这样就能避免这样的问题
---这样做问题并未解决。
提示<body onload="init()">出错:缺少对象。当然init里面确实有对write出来的对象进行操作,不过我觉得如果是因为write出来的对象未生成完毕,那么错误不应该是出现在onload那一行,而应该出现在init里操作write出来的对象的那一行吧?
我在我自己的机器上试了一下,如果把init改成一个未定义的函数名,错误就跟客户机一样。//可以进行延时
延多少时?随便取一个值恐怕不够严谨。有没有办法让对象创建完毕之后发出一个通知?或者检测对象是否已创建完毕。//或者直接写object,不用write
据说微软ACTIVEX新机制,如果直接object,在某些版本的IE里需要多点击控件一下以激活控件,而write出来的就不用。非常感谢大家的帮助。不过希望大家可以继续
//找台不正常的机,上查看源文件,复制回来分析/直接在那里调一下。源文件不用到不正常的机上去复制,我在我的机器上打开该页面就可以得到源文件。问题是该错误只在极个别的机器上出现,而且也不是经常出现,偶尔才出现一次。前提是WEB服务器端的文件并未有任何改变。
先加载了对象,再调试试。或者可以加上检测对象是否为NULL的代码,然后进行相关操作或者再加载对象,这样应该会减少出错机会。
init()里面代码巨多,不可能不用函数直接运行。检测对象是否为null的代码有的,现在的问题是,错误出在<body onload="init()">处。这个try都不好try。最大的问题是,我基本没有办法调试(无法在别的机器上重现错误)。同时这个页面在绝大多数机器上都运行正常,仅在极少数机器上出现错误,而且也是偶尔才出现错误。
//问题是现在错误出在<body onload="init()">那行。在init里面的操作都有异常处理,我试过在页面里面不写那段document.write("<object...");在不出错的机器上init()执行都不会报错,错误已经被异常处理掉了。问题是,为什么错误是出在<body onload...>这一行呢??
function init()
{
oList.AddRow(....);oList.AddRow(...)......//这行巨长,错误:缺少")",看来被截断了,所以接下来onload自然缺少对象了(缺少函数init())
}
<body onload="init()">google看有人遇到过这个问题,不过又说IE4+就没这个问题了,奇怪的是我怎么在IE6上也遇到这个问题,并且是随机出现。难道IE6的javascript引擎有BUG?