Javascript 如何用JS在主机上启动程序

Javascript 如何用JS在主机上启动程序,javascript,apache,Javascript,Apache,这是到目前为止我的代码 <html> <head> <script language="JavaScript"> function java(){ process process = new ProcessBuilder("Pathtomyprogram").start(); } </script> </head> <form name="Test"> <input type="button" value="Test"

这是到目前为止我的代码

<html>
<head>
<script language="JavaScript">
function java(){
process process = new ProcessBuilder("Pathtomyprogram").start();
}
</script>
</head>
<form name="Test">
<input type="button" value="Test" onClick="java()">
</form>
</body>
</html>
但事实上,除非这是你或你信任的一小部分朋友会使用的东西,否则千万不要这样做。我现在更聪明了,对javascript和web编程有了更多的了解,而这一点,即使是我也能认识到,是一个可怕的修正。谢谢

如果这是不可能的,而我是个十足的白痴,请让我知道

出于安全原因,这是不可能的,所以;)。。。至少它不像你问题中描述的那么简单

您的代码在浏览器中运行,该浏览器将您的文档和包含的javascript放在“沙箱”中,防止其访问浏览器之外的任何内容,而浏览器是主机上的任何其他程序

根据此处和关于问题的评论得出结论:

  • 如果您在要在浏览器中呈现的HTML文档的上下文中使用Javascript,则此代码将在该浏览器的上下文中运行,该浏览器至少需要特殊(手动)设置才能在运行浏览器的主机上运行软件。例如,浏览器和/或操作系统提供映射表,将URL方案与要调用以处理任一URL的程序相关联
  • 由于您在手机上观看网站时表示试图在主机上运行程序,这似乎是完全不同的:Javascript正在您的手机上运行,并且肯定无法神奇地在运行服务器的主机上启动某些程序。因此,看起来您希望使用PHP或类似的服务器端脚本语言来提供触发程序执行的URL。PHP并没有绑定到某些浏览器的沙箱,而是绑定到主机(实际上这里是服务器)计算机。然后,您的按钮可能只会导致浏览器请求该脚本的输出(可能使用Javascript),从而导致Apache/PHP运行该脚本,而该脚本又使用PHP的
    exec()
    在主机a.k.a.服务器上启动应用程序

这看起来根本不像是有效的JavaScript<代码>处理过程?什么是ProcessBuilder?除非您在浏览器中安装了插件,否则出于明显的安全原因,浏览器将不允许您在计算机上执行程序。如果我的javascript看起来无效,我很抱歉,因为我自己不知道它是否有效。我怎么能得到一个thag会绕过这种安全性的插件呢?我不知道有一个插件,主要是因为根本不需要。绕过安全性的事情往往不是可取的事情。因此,请澄清一下,您是说不可能从Apache上的JS在主机上启动程序吗?Apache与此无关。您可能能够使用一些服务器端代码从Apache本身执行一些东西。但默认情况下,无法在浏览器中通过JavaScript执行此操作。想象一个世界,你访问的任何网站都可以在你的计算机上启动程序。我想更多的是关于这个问题。。。你当然不能通过在JavaScript代码中输入看起来像代码的随机内容并希望得到最好的结果来执行程序。真的,不清楚你从哪里得到了你写的代码,或者你期望从中得到什么。所以沙盒根本不与主机通信?这取决于你所说的通信是什么意思。沙箱中的代码可以使用某些接口。其中大多数可能被认为是被动的,例如检测当前平台、屏幕大小或类似情况。这也是沟通。进一步的API提供对所选信息(如当前地理位置)的访问,但需要用户对此进行确认。您甚至可以访问连接到计算机的媒体设备。但是你不能随意启动不同的程序。这里有一个例子。当你点击这个链接时,它会有一个按钮,上面写着“接受邀请”。当你点击这个按钮时,它会询问你是否想要打开discord。如果选择“是”,则会在单击按钮的人的计算机上打开discord应用程序。如果它能做到这一点,为什么它不能(在获得许可的情况下)打开主机上的程序?同样是的,我知道这不是一个真实的例子,因为在这个例子中,你点击按钮,它会为你打开,而不是主机。我没有走到这一步。。。最有可能的是,此链接将浏览器重定向到与现有应用程序关联的某个URL,以处理URL其余部分包含的内容。这就像重定向到
mailto:foo@example.com
打开默认邮件应用程序。不过,这需要用户安装一个应用程序,在操作系统中注册一个单独的URL方案(这里:
mailto
),或者至少浏览器需要知道它的一些映射。Discord很可能会重定向到Windows应用商店,不是吗?“不可能”并不完全准确
<?php
 function play() {
 $myfile = fopen("start.txt", "w") or die("Unable to open file!");
 }
?>
@echo off
:home
if exist start.txt goto next
goto home
:next
rem Code you want to be executed goes here.
cls
del start.txt
goto home