最近要做一个功能,用js判断客户端的某个文件是否存在。仅需支持IE浏览器,使用ActiveXObject方法的时候发现一个奇怪的问题。
我写了一个html文件,file_test.html,内容如下:
<script type="text/javascript">
fso=new ActiveXObject("Scripting.FileSystemObject");
alert(fso);
</script>
只有这四行代码.IE8中测试,得到结果如图:
创建对象成功.
查看源代码如下:
然后我又在同目录下写了一个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);
?>
可以正确输出字符串的长度,这是不是说明服务器端没有做处理呢?百思不得其解~~~
如果这种方法行不通,那有其他的什么办法呢?不管用什么方法,我现在的需求就是去判断客户端是否有某个文件,求救了~~~
我们访问淘宝,联系卖家的时候,如果客户端安装了阿里旺旺,就会自动启动阿里旺旺,它肯定需要去判断客户端是否安装了阿里旺旺吧?那淘宝是怎么做到的呢?
大神们呐~~~