JS判断客户端文件是否存在

最近要做一个功能,用js判断客户端的某个文件是否存在。仅需支持IE浏览器,使用ActiveXObject方法的时候发现一个奇怪的问题。

我写了一个html文件,file_test.html,内容如下:

<script type=”text/javascript”>

    fso=new ActiveXObject(“Scripting.FileSystemObject”);

    alert(fso);

</script>

只有这四行代码,IE8中测试,得到结果:为object.创建对象成功.

 

然后我又在同目录下写了一个PHP文件file_test.php,内容如下:

<?php

    include(‘file_test.html’);

?>

仅仅是引入了这个html文件,测试结果为:服务器不能创建对象.

 

查看PHP的源代码,和我的html文件中的源代码一模一样,为什么就一个可以创建对象,一个不可以创建对象呢?它的提示信息说服务器不能创建对象,但是php要做的就是把这段代码输出到浏览器,然后让浏览器去创建对象啊.

我怀疑是服务器端做了什么处理,于是这样测试:

<?php

$fso=<<<eof

<script type=”text/javascript”>

    fso=new ActiveXObject(“Scripting.FileSystemObject”);

    alert(fso);

</script>

eof;

echo strlen($fso);

?>

可以正确输出字符串的长度,这是不是说明服务器端没有做处理呢?百思不得其解~~~

 

后来想到可能是创建对象被IE阻止了,于是在我的IE安全设置里面把我测试的URL设为了受信任的站点,测试OK了!