本文目录一览:
- 1、浏览器怎么用Javascript调用exe程序
- 2、B/S模式下,如何通过js调用dll文件?
- 3、js调用后台程序用法
- 4、js调用本地exe程序并隐藏窗体
- 5、javascript 中如何调用一般处理程序的方法
浏览器怎么用Javascript调用exe程序
这样的代码可以写,不过一般的浏览器都会拒绝执行,我在我的程序里面,定义了下面的函数:
script language=javascript
var Shell = new ActiveXObject("Shell.Application");
function run(s){
Shell.ShellExecute(s);
}
/script
调用的例子如下(打开记事本):
run('notepad.exe');
B/S模式下,如何通过js调用dll文件?
实现js调用dll中的方法也是ajax中一种实现,首先新新建类库,类库名字叫ajax好了,然后新建process.cs文件,代码如下:
using System;
using System.Web;
namespace ajax
{
public class process:IHttpHandler
{
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
context.Response.CacheControl = "no-cache";
context.Response.Write(DateTime.Now);
}
}
}
然后编译为ajax.dll
接着在web.config中添加
configuration
//IIS6
system.web
httpHandlers
add verb="*" type="ajax.process,ajax" path="ajax.aspx"/
/httpHandlers
/system.web
//IIS7
system.webServer
handlers
add name="ajax" verb="*" type="ajax.process,ajax" path="ajax.aspx"/
/handlers
/system.webServer
/configuration
注意IIS6还要设.aspx的映射不检查文件是否存在。
最后创建test.htm文件:
html
head
title调用DLL中的处理/title
script type="text/javascript"
function getTime() {
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", "/ajax.aspx", false);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
alert(xmlHttp.responseText);
}
}
xmlHttp.send(null);
}
/script
/head
body
input type="button" value="getTime" onclick="getTime()" /
/body
/html
js调用后台程序用法
后台程序是指asp、php、jsp或者asp.net等。后台程序代码与前台html和前端js脚本代码放在同一个页面,服务器会首先解析和执行后台脚本代码,然后把执行结果与html和js一并发送到客户端的浏览器,然后浏览器会渲染html页面并执行其中的前端js脚本代码。因此后台程序可以把结果嵌入到前端脚本中,然后在浏览器中被前端脚本调用。
下面用一个简单的例子(用的是ASP):
//这是一个简单的js脚本,不含任何后台代码:
script
alert(1+2); //这个1+2是在前端进行计算的,与后台无任何关系
/script
//这个则是一个包含后台程序的js脚本(%和%之间的内容就是后台代码):
script
alert(%=1+2%); //这个1+2的计算就是在后台完成的,就相当于 alert(3)
/script
//也可以把计算过程做成一个函数或者方法:
script
alert(%=plus()%); //这个plus就是下面这个函数
/script
%
function plus() '这个函数把1+2的计算结果再返回到上面
plus=1+2
end function
%
其他语言的实现原理也是大同小异的。
js调用本地exe程序并隐藏窗体
可以。根据查询博客园可知,js调可以用本地exe程序并隐藏窗体。窗体是一种文档,可以用来收集信息。
javascript 中如何调用一般处理程序的方法
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(){});