JavaScript调用客户端的可执行文件(示例代码)

yizhihongxing

在JavaScript中可以使用一些特殊的API来操作客户端的可执行文件,这些API被称作Web API。其中有一个重要的API就是利用浏览器的插件对象来运行客户端的可执行文件。下面给出基于Chrome浏览器和IE浏览器的实现方式。

Chrome浏览器操作客户端的可执行文件

1. 首先需要编写一个简单的插件

插件的主要功能就是用于连接客户端与浏览器,使得浏览器能够传送一些特定的命令给客户端的可执行文件。下面给出一个简单的插件示例:

// save the following code in a .js file
var jsCallbackFunc = null;
function SimplePlugin()
{
  var self = this;
  this.NPObjectID = null;
  this.MyPlugger = document.createElement('embed');
  this.MyPlugger.type = 'application/x-simpleplugin';
  this.MyPlugger.style.width = 0;
  this.MyPlugger.style.heigth = 0;
  this.MyPlugger.style.visibility = 'hidden';
  this.MyPlugger.id = 'MySimplePlugin';
  document.getElementsByTagName('body')[0].appendChild(this.MyPlugger);
  javascript: function openCb(param){ 
    if (jsCallbackFunc != null) 
    { 
        jsCallbackFunc(param); 
    } 
  }
  this.MyPlugger.attachEvent('onJavaScriptCall', function(args)
  {
    eval(args);
  });
  document.getElementById('MySimplePlugin').jsFuncCall = function(strArgs, callback)
  {
    jsCallbackFunc = callback;
    this.SimpleBrowserCall(strArgs, 'openCb(strArgs);');
  }
  this.SimpleBrowserCall = function(strArgs, jsCallbackFuncName)
  {
    return self.MyPlugger.SimplePluginCall(strArgs, jsCallbackFuncName);
  }
}

2. 编写插件可调用的客户端的可执行文件

前提条件是需要指定一个用于调用插件的公开入口,用于与插件进行数据交换。一个简单的示例代码如下所示:

// demo.js - client side executed code
function myFunction()
{
  alert("This is my function!");
}
function callMyFunction()
{
  if (document.getElementById('MySimplePlugin') == null) {
    alert("Error: plugin not loaded!");
    return false;
  }
  document.getElementById('MySimplePlugin').jsFuncCall('myFunction();', function(result) {
    alert("Call from JS: " + result);
  });
  return true;
}

3. 编写HTML页面

将插件和客户端代码组合在一起,构成一个可执行的HTML页面。示例代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Calling client side code</title>
    <script src="demo.js"></script>
    <script src="SimplePlugin.js"></script>
  </head>
  <body>
    <h1>Example of calling client side code from web page through a plugin</h1>
    <button onclick="callMyFunction()">Call myFunction from plugin/clientside</button>
  </body>
</html>

IE浏览器操作客户端的可执行文件

1. 在IE浏览器中使用ActiveX控件

IE浏览器提供了ActiveX控件,用于操作客户端资源。需要先创建一个ActiveXObject对象,然后通过该对象向可执行文件发送命令。示例代码如下:

 <script language="javascript">
    function openIETxtFile() {
      var fso, txtfile;
      fso = new ActiveXObject("Scripting.FileSystemObject");
      txtfile = fso.OpenTextFile("C:\\example.txt", 1, true);
      txtfile.WriteLine("This is a sample text file.");
      txtfile.Close();
    }
</script>

2. 在HTML页面中添加一个按钮来进行操作

<!DOCTYPE html>
<html>
  <head>
    <title>IE控制客户端可执行文件</title>
    <script language="javascript"> 
        function openIETxtFile() {
          var fso, txtfile;
          fso = new ActiveXObject("Scripting.FileSystemObject");
          txtfile = fso.OpenTextFile("C:\\example.txt", 1, true);
          txtfile.WriteLine("This is a sample text file.");
          txtfile.Close();
        }
    </script>
  </head>
  <body>
    <button onclick="openIETxtFile()">Open Text File</button>
  </body>
</html>

通过上述示例的方法,可以在不同的浏览器中使用相应的Web API完成操作客户端可执行文件的操作。这对于一些有特定需求的web应用是非常有用的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript调用客户端的可执行文件(示例代码) - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • javascript中巧用“闭包”实现程序的暂停执行功能

    闭包是JavaScript的一个重要概念,它可以创建独立的作用域,保护内部变量的安全性。除此之外,闭包还可以用来实现一些特殊的功能,比如程序的暂停执行。 具体来说,利用闭包实现程序的暂停执行,需要用到JavaScript中的generator(生成器)和Promise(承诺)这两个特性。下面是实现的详细攻略。 简单示例 首先,我们来看一个简单的示例,实现一个…

    JavaScript 2023年6月10日
    00
  • javascript对象的相关操作小结

    JavaScript对象的相关操作小结 1. JavaScript对象介绍 JavaScript对象是一种复合数据类型,可以用于存储同一类型的数据。 2. 创建JavaScript对象的三种方式 JavaScript对象可以通过字面量、构造函数和Object.create()创建。 2.1 字面量创建对象 示例代码: var obj = { name: &q…

    JavaScript 2023年5月27日
    00
  • Bootstrap 表单验证formValidation 实现表单动态验证功能

    下面将详细讲解 Bootstrap 表单验证 formValidation 实现表单动态验证功能的完整攻略。 什么是 Bootstrap 表单验证 formValidation Bootstrap表单验证formValidation是一种基于jQuery的验证表单的插件。它是一个简单易用、灵活性强的工具,可以帮助开发者实现表单的动态验证功能。 formVal…

    JavaScript 2023年6月10日
    00
  • Java在web页面上的编码解码处理及中文URL乱码解决

    Java在web页面上的编码解码处理及中文URL乱码解决攻略 1. 问题背景 在使用Java开发Web项目时,经常需要处理中文编码相关的问题,特别是在URL处理中,经常会出现中文乱码问题。这里提供一份详细的攻略,帮助开发者解决这些问题。 2. 编码解码处理 2.1. URL编码解码 在使用GET方法传递参数时,需要对参数进行URL编码处理,以便被服务器正确识…

    JavaScript 2023年5月19日
    00
  • 一篇文章搞定echarts地图轮播高亮

    下面是详细讲解“一篇文章搞定echarts地图轮播高亮”的完整攻略: 1.准备工作 在开始操作之前,你需要准备以下工具和技能: 计算、理解经纬度坐标系并能熟练使用echarts中的地图组件 熟练使用javascript编程语言 确保已经完成了echarts库和其依赖库的安装 2. 地图轮播高亮思路 地图轮播高亮的核心思路,是通过定时器不断切换并高亮指定点的策…

    JavaScript 2023年6月11日
    00
  • asp.net 点击按钮提交后使按钮变灰不可用

    要实现在 ASP.NET 中点击按钮提交后使按钮变灰不可用,可以使用 JavaScript 实现。具体的步骤如下: 步骤一:在 ASP.NET 网页中添加按钮和 JavaScript 函数 在 ASP.NET 网页中添加一个按钮,并给按钮添加一个 onclick 事件,如下所示: <asp:Button ID="SubmitButton&qu…

    JavaScript 2023年6月11日
    00
  • JS获取节点的兄弟,父级,子级元素的方法

    JS获取节点的兄弟、父级、子级元素的方法可以使用DOM提供的方法实现。下面是几种常用的方法: 获取兄弟元素节点 1. nextSibling和previousSibling nextSibling和previousSibling分别是获取下一个兄弟节点和上一个兄弟节点的方法。这两个方法返回的都是一个节点对象。需要注意的是,获取的兄弟节点可能是文本节点或注释节…

    JavaScript 2023年6月10日
    00
  • js 显示base64编码的二进制流网页图片

    这里是JS显示base64编码的二进制流网页图片的完整攻略。 什么是Base64 Base64是一种基于64个字符的编码方式,通常用于在网络上传输二进制数据。Base64编码可以将任意二进制数据用文本表示,不但方便传输,而且可以避免一些特殊字符在传输过程中被转义。 显示Base64编码的图片 有时候我们需要用JS在网页中显示一张Base64编码的图片,可以通…

    JavaScript 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部