关于IE无法打开站点XX已终止操作问题

本文探讨了解决IE浏览器中因页面未加载完成而调用htmlObject的appendChild或innerHTML导致的“已终止操作”及404问题。提供两种解决方法:一是通过判断document.readyState属性来延迟操作;二是使用script标签的defer属性确保脚本在页面完全加载后执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网站在ie下经常出现 已终止操作,然后就404找不到了。

妈的,查了下终于发现原因

在页面还没有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若干秒之后重新作这个操作。

如果要加载独立的脚步文件 可靠的做法是在_onload事件中调用,兼容firefox的一种写法如下:

以下为引用的内容:

<script type=”text/javascript”>

functi_on init(arg){

        //do sth.

}

if(typeof(document.body._onload)==”undefined”)

        window._onload=to_do(arg);

else

        document.body._onload=new Functi_on(’to_do(arg);’);

</script>

 

关于本站是由于ntalker造成的。卸载了,然后把相关的清理了就ok

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值