Internet Explorer已限制此网页运行可以访问计算机的脚本或ActiveX控件

时间:2024-03-04 22:37:26

在制作网页的时候,大家不免要用到script,也即是脚本,主要是VBScript以及JavaScript。那么时常遇到这样的情况:

在本地双击打开html文件时,如果是IE的话,会出现提示框(如下图):

[转]Internet <wbr>Explorer已限制此网页运行可以访问计算机的脚本或ActiveX控件

造成这种困扰的原因:IE保护机制,默认安全级别较高,当然可以修改自己的IE浏览器来解决。

方法:打开IE——工具——Internet选项——高级标签——安全——勾选“允许活动内容在我的计算机上的文件中运行”

以下情况会发生这种现象:

1,使用360浏览器、遨游浏览器、搜狗浏览器等浏览器浏览。

2,使用服务器浏览网页。使用Apache或IIS搭建个人web服务器,将网页文件放在对应目录里面,使用http://localhost/……地址访问。

也就是说造成这种现象的原因有二,一是并未通过服务器解析进行浏览,而是使用我们常用的双击打开在浏览器里浏览,而是使用的是IE浏览器浏览,如果换用360或者搜狗浏览器的话就不会出现这种情况。

如果我们考虑到网页兼容性测试有必要使用多个IE版版本进行测试,而且觉得是用地址浏览不如双击浏览方便,那么就需要寻找解决方法解决这个让人不舒服的tips。

因为这种现象很常见,于是有很多人在知道或者问问上发帖求助,于是在CSDN上一位博主发表一篇原创文章,专门为解决这个问题。由于原文已被删除,但由于大家觉得他的解答很受用,纷纷转载、抄袭。

见:http://www.baidu.com/s?wd=Ϊ�������ڱ�����ȫ�ԣ�IE�����ƴ���ҳ���п��Է��ʼ����Ľű��� ActiveX �ؼ�&tn=sogouie_1_dg

详细浏览后发现随让题目不一,但方法如出一辙。例如,这篇http://blog.dormforce.net/est/archives/109

流传中的方法:

在 html 文件 !DOCTYPE 下面那行加上
<!– saved From url=(0022)http://blog.csdn.net/electroniXtar/ –>
就行了

我一向反对抄袭,所以对评价是否抄袭很谨慎,说是抄袭的很简单,在这个方法中有一个地址http://blog.csdn.net/electroniXtar/,显然这个地址是原创者留下防“借鉴不留出处”的人。而如果你百度搜索这个地址,会发现大量结果与“IE已限制此网页运行可以访问计算机的脚本或 ActiveX 控件”这十几个关键字挂钩。显然抄袭这个成果的人绝不在少数,甚至百度知道上很多人也用这个回答,而且答案被采纳。

其实我在上面也说了,这个问题很小,因为在实际开发中,网站必须借助服务器,因为在运营的网站上,不会出现这个提示,即使是IE也不会,出现这种问题的朋友们根本不用太担心,这只是一个很小的问题。

我要说的是原创者的想法和转载者的盲目,以致部分人受到错误引导。

首先,原创者也许知道这个问题在服务器上不会发生,但是他却并未告诉我们这一点,因为如果大家知道这一点的话,她的文件价值就无法体现了,这似乎有私心。

其次,原创者使用自己blog地址目的无可厚非,但做一个网站,里面放着别人的链接,而且还是在使用者看起来很重要的屏蔽错误的链接。在脱机浏览的时候,不能链接到这个博客,岂不还会出现提示?当然也许这个地址只是个幌子,根本不会连接上去,有待详细验证。不过个人测试对于某些地址可以使用,某些不行,那么这个方法就体现出了它的局限性。

最后,也是最重要的一点,按照

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!– saved From url=(0022)http://blog.csdn.net/electroniXtar/ –>
<html xmlns="http://www.w3.org/1999/xhtml">

写出来的代码,产生的效果是:的确不显示tips了,但很少人发现这个网页不是脚本提示被屏蔽了,而是网页中的脚本不执行了。我并不十分清楚其中缘由,前几个月测试发现原来脚本不能执行了,今天发现这种方法不能用了,提示依旧。如果说造成脚本不执行了,那么这就是一个严重的问题,这样的方法用了反而起反作用,如果不加这个代码,在服务器上一放,就没什么问题,这样一加导致脚本失效,对于大一点的网站,绝对是灾难性的错误。当然具体情况在服务器上是否会阻止脚本执行,并未测试。但这种只是去掉提示而并未解决根本的脚本被IE阻止的问题,无异于饮鸩止渴,隐藏错误,失去了发现错误的机会。

另外是转载抄袭者的盲目,由于很多人并未意识到脚本被阻止了,并未有提示,所以因此盲目转载吹嘘的人太多,以至于这种错误方法泛滥。

那么在这里,本来这个问题不大,为了一些人的需要,提供以下方法

即在<html>和<head>标签中间加上<!-- saved from url=(0014)about:internet -->代码,或许我也可以在这行代码中加点什么,或者我的博客地址的什么,但是我觉得对于网站代码,是给大家用的,不是给自己做广告的。html代码有些太过的修改会影响到使用者,相信如果一个站长网里面js代码都有些替换不掉的原网网址的话,也不会有人用的。

为接受大家测试。写出这个方法的测试代码,建议每次测试前清除掉IE缓存。可使用IE9以下任何版本

代码(1)

<HTML>
<HEAD>
<TITLE>测试</TITLE>
</HEAD>
<BODY>
<script language="javaScript">
<!--
now = new Date(),hour = now.getHours()
if(hour < 6){document.write("凌晨好!")}
else if (hour < 9){document.write("早上好!")}
else if (hour < 12){document.write("上午好!")}
else if (hour < 14){document.write("中午好!")}
else if (hour < 17){document.write("下午好!")}
else if (hour < 19){document.write("傍晚好!")}
else if (hour < 22){document.write("晚上好!")}
else {document.write("夜里好!")}
// -->
</script>
</BODY>
</HTML>

按照流传的方法

代码(2)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!– saved From url=(0022)http://blog.csdn.net/electroniXtar/ –>
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE>测试</TITLE>
</HEAD>
<BODY>
<script language="javaScript">
<!--
now = new Date(),hour = now.getHours()
if(hour < 6){document.write("凌晨好!")}
else if (hour < 9){document.write("早上好!")}
else if (hour < 12){document.write("上午好!")}
else if (hour < 14){document.write("中午好!")}
else if (hour < 17){document.write("下午好!")}
else if (hour < 19){document.write("傍晚好!")}
else if (hour < 22){document.write("晚上好!")}
else {document.write("夜里好!")}
// -->
</script>
</BODY>
</HTML>

加<!-- saved from url=(0014)about:internet -->后的代码

代码(3)

<HTML>
<!-- saved from url=(0014)about:internet -->
<HEAD>
<TITLE>测试</TITLE>
</HEAD>
<BODY>
<script language="javaScript">
<!--
now = new Date(),hour = now.getHours()
if(hour < 6){document.write("凌晨好!")}
else if (hour < 9){document.write("早上好!")}
else if (hour < 12){document.write("上午好!")}
else if (hour < 14){document.write("中午好!")}
else if (hour < 17){document.write("下午好!")}
else if (hour < 19){document.write("傍晚好!")}
else if (hour < 22){document.write("晚上好!")}
else {document.write("夜里好!")}
// -->
</script>
</BODY>
</HTML>

测试结果:在IE8.0中,分别双击打开三个代码。代码(1)和代码(2)都提示tips,代码(3)正常执行脚本命令,有显示结果。

代码(3)即是本文所提供的这种方法,文章有不当之处,万望大家指正。