访问本地可执行文件的Javascript

访问本地可执行文件的Javascript,javascript,executable,Javascript,Executable,网站右侧有一个“开始游戏”按钮。如果您的计算机上安装了游戏,并且您已登录该网站,当您单击该按钮时,它将在您的计算机上启动游戏 这怎么可能?我总是相信Javascript除了浏览器本身之外无法访问任何东西,因为这是一个安全问题,那么这是如何工作的呢?这可能不是办法,但在过去,大多数应用程序所做的是注册一个他们监听的协议。因此,Aim有Aim://和winamp://。然后,操作系统处理这些协议并将它们传递给适当的应用程序。我很好奇这里的情况是否相同 不管它是什么,似乎都在这个文件里。 编辑ahh

网站右侧有一个“开始游戏”按钮。如果您的计算机上安装了游戏,并且您已登录该网站,当您单击该按钮时,它将在您的计算机上启动游戏


这怎么可能?我总是相信Javascript除了浏览器本身之外无法访问任何东西,因为这是一个安全问题,那么这是如何工作的呢?

这可能不是办法,但在过去,大多数应用程序所做的是注册一个他们监听的协议。因此,Aim有Aim://和winamp://。然后,操作系统处理这些协议并将它们传递给适当的应用程序。我很好奇这里的情况是否相同

不管它是什么,似乎都在这个文件里。

编辑ahhh:)

var NGMModuleInfo='';

所以它是一个正在使用的dll文件。所以很可能是ActiveX或类似的东西。可能在mac上不起作用:)

我认为Amir几乎是对的,但他们似乎不是注册协议,而是注册MIME类型,并使用ActiveX(IE)和Firefox和其他浏览器的浏览器插件:

发件人:

总之,由于您说这仅在安装游戏时有效,因此他们似乎使用了与Adobe Reader或Quicktime相同的方法:安装浏览器插件/activex并注册与该插件关联的MIME类型


唯一的区别是他们使用javascript(您可以使用javascript中的任何插件,例如,您可以使用JS控制Windows Media Player插件或Flash)。

是的,游戏仅限于Windows。
var NGMModuleInfo = '<?xml version="1.0"?><NGMModule><NGMDll host="ngm.nexon.net/ngm/NGM/Bin/NGMDll.dll" crc="1505415642" /><GameData><combatarms_us gamecode="33563143" crc="0" /></GameData></NGMModule>';
this.strGameAXName = "NXCOM.NxGameControl.US.2"; // ActiveX class
this.strGameFPName = "application/x-npnxgame-us"; // MIME type
this.strNxMInfoAXName = "NXCOM.NxMachineControl.US.1"; // ActiveX class
this.strNxMInfoFPName = "application/x-npnxminfo-us"; // MIME type