本文目錄一覽:
- 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(){});
原創文章,作者:HJHE,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/148733.html