呵呵,这样我们只要通过判断loadComplete来取得页面是否载入完毕了。 代码如下: var mImgdir = ""; var mCaption = "caption"; var mMsg = "Message"; var mOkClick= null; function ShowMessage(imgdir,caption,msg,OkClick) { if(loadComplete) { KMessageBox.ShowInfo(mImgdir,mCaption,mMsg,mOkClick); } }
这样子在loadComplete未false的情况下,我们就不会去执行KMessageBox.ShowInfo()方法,只然就不会出现JS错误提示了。 单单这样子,还不行,因为输出的这样的脚本,IE只在输出页面的时候执行了一次,但是此时loadComplete=false,所以,我们需要定时检测页面是否载入完毕。说到定时,只然是祭出setTimeout & setInterval. 我们这里需要不停的检测,故使用setInterval方法。最终代码如下: 代码如下: var loadComplete = false; var mImgdir = ""; var mCaption = "caption"; var mMsg = "Message"; var mOkClick= null; var timerID; function ShowMessage(imgdir,caption,msg,OkClick) { if(loadComplete) { KMessageBox.ShowInfo(mImgdir,mCaption,mMsg,mOkClick); //卸载此事件 window.detachEvent("onload",function(){LoadCompleted;}); //停止定时触发 window.clearInterval(timerID); } } function LoadCompleted() { loadComplete=true; } window.attachEvent("onload",LoadCompleted); //设置定时检测机制 timerID = window.setInterval(ShowMessage,1);