首页 新闻 搜索 专区 学院

使用.net模板页,用自定义JS提示框时出现IE无法打开INTERNET站点

0
[已关闭问题]

这是后台注册JS的代码。

 page.ClientScript.RegisterStartupScript(page.GetType(), "", "<script>sAlert('" + message + "');</script>");

在模板页里添加的JS引用。

<script type="text/javascript" src="js/sAlert.js"></script>

在前台页面调用sAlert()时没有任何问题,但如上面的在后台注册应用sAlert()时就会出现“IE无法打开INTERNET站点”。在网上找了很多原因说:

在页面还没有ready的时候就调用了htmlObject的appendChild或者innerHTML操作,这样会在IE上弹出一个对话框:“Internet Explorer无法打开站点,已终止操作”

解决方法有两个:

(1)在appendChild或者innerHTML操作处判断document.readyState=="complete", 若为否,则setTimeout若干秒之后重新作这个操作。

但是,此属性只对ie,opeara有效,ff的document没有readyState属性,永远是undefined.

(2)在script中使用defer属性。意在页面加载完毕后再执行脚本,这样可以避免找不到对象的问题。defer不会考虑外部文件是否全部下载完,只会判当前页面是否全部加载完成。并且,有defer标签的代码块里不能写document.write方法

使用ajax时发生错误的解决方案:在appendChild或者innerHTML操作处判断document.readyState=="complete", 若为否,则setTimeout若干秒之后重新作这个操作

按照上面的方法还是没有成功,请高手帮忙解决。不胜感激!

hjlong的主页 hjlong | 初学一级 | 园豆:200
提问于:2009-03-03 12:39
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册