Js如何调用本地应用程序

Js如何调用本地应用程序,第1张

一般情况下,浏览器中是无法直接和本机的其他的程序进行交互的,在IE中,我们可以通过ActiveX对象的方式进行。但是这个方式只适用于IE浏览器,另一种比较通用的方式便是URL协议的方式,我们将某种URL的协议注册给某个程序来进行处理,比如将tencent://这样的协议注册给QQ程序来进行处理,当浏览器需要访问这样的协议的时候就转给QQ程序进行处理。这种URL协议的方式是可以跨平台的,比如在Windows上你需要添加注册表项。

首先先看看js应该如何调用qq客户端。

window .open(" tencent://message/?uin=346915968 ")

window.open顾名思义,打开。Tencent就不用多说了吧 BAT之T。上述能直接打开qq帐号对应的对话框。由此可以知道网页上的在线客服功能是如何实现了吧。

那要是不需要打开对话框,就想要登陆qq应该如何实现呢?很简单呀:

window .open(" tencent://message/?uin=qq ") 不过调用应用这种跟黑客没什么差别的行为,浏览器一般都是禁止的,

选择允许后,

启动应用,qq客户端就会被调起。

为什么说这个呢,老板又给了个需求,想让调起qq客户端一样,想通过演示页面的一个按钮,调起售票系统的各种程序...

什么都不说了,先看看什么是自定义协议。

Pluggable Protocol,又叫URL Protocol,有时会叫Shell命令,通用的Protocol有http、ftp、mailto等,这些都是windows安装时自带的协议。

接着也实现一个简单的自己的自定义协议吧。

1,运行window,输入regedit打开注册表。 在HKEY_CLASSES_ROOT下面建一个自己起的名字的表。

用如下格式把各项值添上:

js打开qq音乐.exe

启动应用

end.

当然是不能直接调用了,间接的方法也很容易实现,比如apache接收js发送来的请求然后执行system('haha.sh')。

通过前端来控制服务器进行一些复杂的脚本 *** 作,能够方便服务器管理,免得经常登录ssh,当然,安全性也是需要权衡的。

javascript主要有三种处理事件的方法:

1.作为html元素的属性

<a onclick="alert(123)" id="link">dada</a>

2.作为js对象的属性:

var a = document.getElementById("link")

a.onclick = function(){}

3.给js对象绑定方法:

a.addEventListener('click',function(){})

三种方法分析:

方法一:

1.作为元素的属性,那么就把行为和结构捆绑在一起了,违背了行为和结构分离的特点,所以不推荐。

2.作为元素的属性时,属性名应该是“on”+事件名称(点击事件:onclick)。

3.属性值是javascript代码字符串,是函数的主体,而非函数声明。(注意:在js对象属性中,赋值给属性的是函数名fun,这里赋值的是函数调用fun())

方法二:

如果是作为js对象的属性,那么一次只能给一个元素绑定一个事件,如果绑定了多个事件,默认执行最后一次。

   var box = document.getElementById('box')

   box.onclick = dada//不执行

   box.onclick = dada2//不执行

   box.onclick = dada3//执行dada3

    function dada(){

        alert("dada")

    }

    function dada2(){

        alert("dada2")

    }

    function dada3(){

        alert("dada3")

    }

方法三:

如果是给js对象绑定了方法addEventListener,那么可以加多个事件,并且多个事件都会执行。但是这个方法有兼容性问题,在ie8以及以下用:attachEvent。

    var box2 = document.getElementById('box2')

    box2.addEventListener('click',dada,false)//dada

    box2.addEventListener('click',dada2,false)//dada2

    box2.addEventListener('click',dada3,false)//dada3

    function dada(){

        alert("dada")

    }

    function dada2(){

        alert("dada2")

    }

    function dada3(){

        alert("dada3")

    }

具体的细节你可以自己再看一下,同时现在很多框架设计的事件相应比较完善,不存在兼容性和其他一些问题,可以参考jquery的事件绑定方法:a.bind("click",function(){})


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11798593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存