前端点击打开本地脚本

问题遇到的现象和发生背景

有一个问题
需要在前端通过跳转链接,点击后自动打开一个本地的脚本

我的解答思路和尝试过的方法

尝试了下直接输入文件路径,点击的话是个下载而不是打开。

我想要达到的结果

在前端通过跳转链接,点击后自动打开一个本地的脚本
需要怎么达到这个效果

默认前端是无法直接打开的,需要选择一个更加迂回的方式

比如前端调用后端的REST API接口来实现这个功能

解决方法

可以尝试使用前端进行API接口调用的方式来打开本地脚本

  • 1、以Python为例,编写REST API,里面包含这段代码
import os
os.system(“本地文件路径”)
  • 2、在前端调用该REST API接口,记得传参-文件路径

如有问题及时沟通

客户端脚本(比如Javascipt)本身没有权限进行系统调用,但是在windows 系统下,在IE浏览器中利用JS创建activeX对象可以调用本地的可执行文件:

<script language="javascript" type="text/javascript">  
    function runExe()   
    {   
        //创建ActiveX对象  
        var shell = new ActiveXObject("WScript.shell");   
        //命令字符串,路径不能为反斜杠且路径中的文件夹名称中不得有空格,  
        //如果出现空格,会被解析成两个命令  
        var cmd="d:/test/target.exe";  
        //true的t小写  
        shell.run(cmd,1,true);   
    }   
</script>  

其中的shell.run参数介绍如下:

   参数1:执行命令字符串;

   参数2:应用执行时的窗口风格,1表示激活并显示窗口;

   参数3:是否等待命令执行完再向下执行,true表示等待。

参考:https://www.iteye.com/blog/emsn-949098