您现在的位置: 网页制作教程网 >> 网页特效 >> Javascript 教程 >> 文章正文

如何在服务端(Page.Write)调用自定义的JS方法

作者:佚名

来源:本站原创

热度:

2006-9-10 13:44:33

自从[JavaScript]自定义MessageBox一文发布以后,很多网友都来信询问,如何在服务端调用ShowInfo方法,周末休息想了个折中的办法来实现。

  首先,我们应该可以先明确,为什么我们用Page.Write把自定义的JS方法输出到页面上为什么IE不能识别,会出现“XXX未定义”的错误。原因很简单,因为我们用Page.Write输出的脚本是出现在页面的最顶端。IE读到是javascript函数的时候,就开始执行,但是此时我们link的js文件并未被IE读入,所以IE无法识别我们定义在js文件里面的方法。那write alert为什么可以呢?因为alert是IE内嵌的脚本功能函数,不管有没有页面,IE都认得它。

  找到问题所在,自然就好解决了:

  1、把我们自定义的方法内嵌到IE里面。 ---> 看起来有点异想天开,呵呵

  2、等页面载入完成后再触发事件。 --->触发事件,没错。

  如何知道页面是否载入完成呢?

  1、通过document的状态

  2、通过事件触发(windows.onload)

  第一种好像比较不保险,有时候明明已经全部载完了,它还是一直显示在传送数据(FF此情况最明显),所以还是用事件比较保险一点。

  定义一个简单方法,挂载到windows.onload里面,执行的时候做一个标识

var loadComplete = false;
function LoadCompleted()
{
loadComplete= true;
}
window.attachEvent("onload",LoadCompleted);

  呵呵,这样我们只要通过判断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);
}
}

[1] [2] 下一页

我来说两句:

1分 2分 3分 4分 5分
姓名: *


* 请各位网友遵纪守法并注意语言文明。
网站简介 | 联系方式 | 意见建议 | 版权说明
Copyright © 2007 All rights reserved
滇ICP备06006992号