广

JavaScript

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    IE6打开提示已终止操作无法打开

    2018-04-16 10:57:46 次阅读 稿源:互联网
    零七广告

    今天遇到一个问题,网站在IE 6下面打开会提示:Internet Explorer无法打开站点XXX。已终止操作。本文介绍一下如何处理这个问题:

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

    解决办法大概为以下两点:

    1. 在appendChild或者innerHTML操作处判断document.readyState=="complete", 若为否,则setTimeout若干秒之后重新作这个操作。但是,此属性只对ie,opeara有效,ff的document没有readyState属性,永远是undefined.

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

    如果是使用jQuery,则可以将要写入html代码的地方放入:$(function(){//原来的代码});

    如果是原生,可以使用下面这个替换:

    You Might Not Need jQuery

    IE8+

    function ready(fn) {  if (document.readyState != 'loading'){    fn();  } else if (document.addEventListener) {    document.addEventListener('DOMContentLoaded', fn);  } else {    document.attachEvent('onreadystatechange', function() {      if (document.readyState != 'loading')        fn();    });  }}

    IE9+

    function ready(fn) {  if (document.readyState != 'loading'){    fn();  } else {    document.addEventListener('DOMContentLoaded', fn);  }}

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告