转 JavaScript调用WebServices(使用WebService.htc)
.XML Web services 行为使客户端脚本能够调用由 Microsoft .NET XML Web services 或其他支持简单对象访问协议 (SOAP) 的 Web 服务器公开的远程方法。
目的:提供一种简单的方法使用和利用 SOAP,而不需具有 SOAP 实现的专业知识。
步骤:
1.下载Webservice.htc,许多网上的文章介绍该文件可以在微软的网站上找到,但我按照地址点进去时,只看到网页不存在的提示
2.创建WebService文件假设为MathService.asmx,其提供Add和Subtract两个服务函数
3.创建调用的网页文件Sample.htm(文件内容在下面详细分析)
4.将Webservice.htc复制到Sample.htm同一目录下
5.通过浏览器,浏览该网页
下面分析Sample.htm的内容(取自Msdn)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<LINK REL="stylesheet" HREF="/workshop/samples/samples.css" TYPE="text/css">
<SCRIPT language="JavaScript">
var iCallID;
var callObj;
function init()
{
// 定位WebService服务位置,并且为该服务制定一个名字
// 同一ServiceURl可以指定多个名字,Service为HTM文件中的HTML TAG,可以使用HTML中定义的任何标记
service.useService("..\\..\\MathService.asmx?WSDL","MyMath");
// 禁用Add按钮.
doAddButton.disabled = true;
service.onserviceavailable = enableButton();
}
function enableButton(){
doAddButton.disabled = false;
}
function doAdd(x, y){
// 同步调用 // 创建一个 the SOAPHeader object
var headObj = new Object();
// 创建 the call object
callObj = service.createCallOptions();
callObj.async = false;
callObj.params = new Array();
callObj.params.a = x;
callObj.params.b = y;
callObj.funcName = "Add";
callObj.SOAPHeader = new Array();
callObj.SOAPHeader[0] = headObj;
oSPAN.innerText = x + " + " + y + " = ";
// 使用回调函数"mathResults"调用
iCallID = service.MyMath.callService(mathResults, callObj);
mathResults(iCallID);
}
function doSubtraction(y, x){
// 异步调用,这是系统默认的调用方式(the default)
oSPAN.innerText = y + " - " + x + " = ";
// 调用Subtract
// 使用回调函数"mathResults"调用
iCallID = service.MyMath.callService(mathResults, "Subtract", y, x);
}
functio
相关文档:
解决思路
这个效果并不算常见,通常用于游戏或个人站点中。因为拖曳是靠鼠标来操作的,所以对鼠标的位置的捕获是问题的重点,然后才是根据鼠标的位置设置层的位置。
具体步骤:
1.在对象(层)上按下鼠标时,先捕获到需要拖曳的对象,然后获取或设置该对象的相关属性。
obj=ev ......
<script type="text/javas
cript">
var docEle = function() {
return document.getElementById(arguments[0]) || false;
}
function openNewDiv(_id){
var m = "mask";
if (docEle(_id)) document.body.removeChild(docEle(_i ......
方法: string.replace(new RegExp(oldString,"gm"),newString))
gm g=global, m=multiLine,大致上方法就是这样的,可以实现替换全部指定字串
另一个简单的验证JS的方法:
在浏览器地址栏输入
javascript:alert("abcabcabc".replace(new RegExp("a","gm"),"ad&quo ......
Link:http://topic.csdn.net/u/20100317/15/687e21bc-40f3-4f0e-bc22-5f2a32ceb1a3.html?seed=1664090183&r=63989333#r_63989333
<HTML>
<head>
<title>sample</title>
<mce:script language="JavaScript"><!--
var c="FFFFFF";
window.onload=function (){
setInterval(s ......