如何在服务端(Page.Write)调用自定义的JS方法自从[JavaScript]自定义MessageBox一文发布以后,很多网友都来信询问,如何在服务端调用ShowInfo方法,周末休息想了个折中的办法来实现。
找到问题所在,自然就好解决了: 1、把我们自定义的方法内嵌到IE里面。 ---> 看起来有点异想天开,呵呵 2、等页面载入完成后再触发事件。 --->触发事件,没错。
如何知道页面是否载入完成呢? 1、通过document的状态 2、通过事件触发(windows.onload)
第一种好像比较不保险,有时候明明已经全部载完了,它还是一直显示在传送数据(FF此情况最明显),所以还是用事件比较保险一点。
定义一个简单方法,挂载到windows.onload里面,执行的时候做一个标识
var loadComplete = false; 呵呵,这样我们只要通过判断loadComplete来取得页面是否载入完毕了。
var mImgdir = "";
单单这样子,还不行,因为输出的这样的脚本,IE只在输出页面的时候执行了一次,但是此时loadComplete=false,所以,我们需要定时检测页面是否载入完毕。说到定时,只然是祭出setTimeout & setInterval. 我们这里需要不停的检测,故使用setInterval方法。最终代码如下:
var loadComplete = false; } function LoadCompleted() { loadComplete=true; }
//设置定时检测机制
当然以上代码只兼容IE,因为使用attachEvent 和 detachEvent,至于让他兼容其他浏览器可以参看[JavaScript]自定义Title的显示方式一文中的处理方式:
if(!document.attachEvent)//Not IE 在服务端,只要StringBuilder出以上的脚本,然后Write出来就可以了。上面也只是提供了一种思路,当然还会有其他的办法,比如我不适用定时检测,我直接挂载到windows.onload里面,让页面自动监听,自动执行,也未尝不可:),正所谓条条大路通罗马嘛~~~~~
以上思路来自yui,并且yui实现了一个更漂亮的自定义MessageBox,有兴趣的朋友可以共同研究下。 http://www.cnblogs.com/walkingboy/archive/2006/08/28/autorun_customerfunction.html 上一篇:Email地址加密javascript版 下一篇:使用脚本控制网页Table的显示隐藏(全代码) 更多相关文章
|
推荐文章
精彩文章
|