提示“Internet Explorer无法打开Internet站点...”的原因及解决

来源:岁月联盟 编辑:zhu 时间:2010-01-08
提示“Internet Explorer无法打开Internet站点...”的原因及解决方法内容简介:1.html标签有遗漏(缺结束标记) 2.js问题,有可能是页面没加载完毕引起的. 加defer属性. 关键点: 加上defer等于在页面完全载入后再执行,相当于window.onload ,但应用上比window

1.html标签有遗漏(缺结束标记)
2.js问题,有可能是页面没加载完毕引起的. 加defer属性.

关键点:

加上defer等于在页面完全载入后再执行,相当于window.onload ,但应用上比window.onload 更灵活!

页面载入判断

对于含有<iframe>的页面,错就错在 <iframe 这里了,页面还没完成,就跑 <iframe ,<iframe 还没引发完成就跳转,导致游览器中断,所以就出现了 “Internet Explore 无法打开Internet站点...,已终止操作”

Script中的Defer属性 JS性能 系统性能

script中的defer属性默认情况下是false的。按照DHTML编程宝典中的描述,对于Defer属性是这样写的:
Using the attribute at design time can improve the download performance of a page because the browser does not need to parse and execute the script and can continue downloading and parsing the page instead.
也就是说:如果是编写脚本的时候加入defer属性,那么浏览器在下载脚本的时候就不必立即对其进行处理,而是继续对页面进行下载和解析,这样会提高下载的性能。
这样的情况有很多种。比如你定义了很多javascript变量,或者在引用文件(.inc)中写了很多的脚本需要处理,那不妨在这些脚本中加入defer属性,对性能的提高肯定有所帮助。

举例如下:

<script language="javascript" defer><!--
....
//defer属性默认=false
//<script language="javascript" defer>显式声明defer属性后等同于<script language="javascript" defer=true>
// --></script>  

声明了defer属性之后,需要判断是否有别的变量引用了defer脚本块中的变量,否则的话会导致脚本错误的产生。

注意:
1、不要在defer型的脚本程序段中调用document.write命令,因为document.write将产生直接输出效果。
2、不要在defer型脚本程序段中包括任何立即执行脚本要使用的全局变量或者函数。

     在你的网页已截入完成后,你想动态添加JS脚本时用的,如果你只是object.innerHTML = "<script" + ">"..."</script" + ">";那么当你调用你这个新定义的东东就会出错,说还未定义,当你在上面的代码加入defer时那么你就能成功调用它,在下面的代码中你可以试下把它去掉defer ,那么你就会发现问题!

<HTML>
<SCRIPT>
function insertScript(){
var sHTML="<input type=button onclick=" + "go2()" + " value='Click Me'><BR>";
var sScript="<SCRIPT defer>";
sScriptsScript = sScript + "function go2(){ alert('Hello from inserted script.') }";
sScriptsScript = sScript + "</SCRIPT" + ">";
ScriptDiv.innerHTML = sHTML + sScript;
}
</SCRIPT>
<BODY onload="insertScript();">
<DIV ID="ScriptDiv"></DIV>
</BODY>
</HTML>

图片内容