js调用客户端exe程序(路径含空格有效)

IE里面为我们提供了一个ActiveXObject对象,而其他浏览器没有这个对象,也没有类似的对象,所以该方法只在IE浏览器中生效。

<script type="text/javascript">
    function qq(){
        //从Window下复制来的路径是 '\' 斜线,需改为'\\'或者'/'
        //路径前的file:\\\可有可无,建议加上
        var qqPath="file:\\\D:/Program Files/Tencent/QQ/QQProtect/Bin/QQProtect.exe";
        try{
            var objShell = new ActiveXObject("wscript.shell");
            //加上 \" 解决路径中含有空格的问题
            objShell.Run("\""+qqPath);
            objShell = null;
        }
        catch (e){
            var repart=alert('找不到文件。请查看路径是否正确!');
        }
    }
</script>
<input type="button" value="打开QQ" onclick="qq();"/>

把这段看似没问题的代码发布到web服务器上的时候,你会惊异的发现——怎么我测试好的代码突然不管用了?

这样解决:打开IE浏览器的 工具-Internet选项-安全-可信站点-站点,把改网站地址添加到可信站点里面。