解决方案 »

  1.   


    希望下面的方法可以帮到你:http://www.scriptlover.com/pages/notes.asp?texts=%BF%E7%D3%F2
      

  2.   

    JS 可以调用公网的webservice的下面是清洁工大侠 写的CSDN分数查询器,就是调用CSDN的服务复制保存为:xxx.hta<html>
    <title>CSDN积分查询--清洁工2008版</title>
    <head>
        <hta:application id="sofa" icon="sofa.ico" />
    </head>
    <body>
    <div>
        用户名:<input type="text" id="TextUsername" />
        密码:<input type="password" id="TextPassword" />
        目标用户:<input type="text" id="TextDestuser" />
        <input type="button" value="开始查询" onclick="ButtonStartClick();" id="ButtonStart" />
    </div>
    <div style="width:100%; height:80%">
        <textarea id="TextareaLog" style="width:100%; height:100%"></textarea>
    </div>
    <script language="javascript" type="text/javascript">
    var ForAppending = 8; // 追加模式
    var ForReading = 1; // 读取模式
    var ForWriting = 2; // 写入模式var fso = new ActiveXObject("Scripting.FileSystemObject"); // 文件系统
    var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // http访问
    var textareaLog = document.getElementById("TextareaLog"); // 日志文本框
    var textUsername = document.getElementById("TextUsername"); // 用户名
    var textPassword = document.getElementById("TextPassword"); // 密码
    var textDestuser = document.getElementById("TextDestuser"); // 目标用户/// <summary>
    /// 将字符串追加到文本文件最后
    /// </summary>
    /// <param name="filename">文件名</param>
    /// <param name="text">所要追加的字符串</param>
    /// <returns>返回文本文件中的字符串</returns>
    function AppendFileText(filename, text)
    {
        var istream = fso.OpenTextFile(filename, ForAppending, true);
        if (!istream) return;
        try
        {
            istream.write(text);
            istream.Close();
        }
        catch (e)
        {
        }
    }/// <summary>
    /// 将字符串写到文本文件中
    /// </summary>
    /// <param name="filename">文件名</param>
    /// <param name="text">所要追加的字符串</param>
    /// <returns>返回文本文件中的字符串</returns>
    function WriteFileText(filename, text)
    {
        var istream = fso.OpenTextFile(filename, ForWriting, true);
        if (!istream) return;
        try
        {
            istream.write(text);
            istream.Close();
        }
        catch (e)
        {
        }
    }/// <summary>
    /// 添加日志
    /// </summary>
    /// <param name="text">日志文本</param>
    function AppendLog(text)
    {
        if (textareaLog) textareaLog.value += text;
        AppendFileText("log.txt", text);
    }/// <summary>
    /// 获得用户积分信息
    /// </summary>
    /// <param name="username">用户名</param>
    /// <param name="password">密码</param>
    /// <param name="destuser">目标用户</param>
    /// <returns>返回构造的用户积分信息</returns>
    function GetUserProfile(username, password, destuser)
    {
        var contentText = 
    '<?xml version="1.0" encoding="utf-8"?>\n' +
    '<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">\n' +
    '    <soap12:Body>\n' +
    '        <GetUserProfile xmlns="http://www.csdn.net/">\n' +
    '            <identity>\n' +
    '                <username>' + username + '</username>\n' +
    '                <password>' + password + '</password>\n' +
    '            </identity>\n' +
    '            <username>' + destuser + '</username>\n' +
    '        </GetUserProfile>\n' +
    '    </soap12:Body>\n' +
    '</soap12:Envelope>\n';
        try
        {
            xmlhttp.open("post", "http://forum.csdn.net/OpenApi/forumapi.asmx", false);
            xmlhttp.setRequestHeader("CONTENT-LENGTH", contentText.length);
            xmlhttp.setRequestHeader("CONTENT-TYPE", "text/xml; charset=utf-8");
            xmlhttp.send(contentText);
            return xmlhttp.responseText;
        }
        catch (e)
        {
            return "";
        }
    }/// <summary>
    /// 分析用户积分信息
    /// </summary>
    /// <param name="profileText">用户的XML信息</param>
    /// <returns>返回构造的用户积分信息</returns>
    function UserProfile(profileText)
    {
        profileText = profileText.replace(/\r\n/g, " ");
        var re = /\<errId\>(.*?)\<\/errId\>/g;
        if (re.exec(profileText)) this.errId = RegExp.$1; // 错误号    var re = /\<errInfo\>(.*?)\<\/errInfo\>/g;
        if (re.exec(profileText)) this.errInfo = RegExp.$1; // 错误信息
        
        var re = /\<point\>(.*?)\<\/point\>/g;
        if (re.exec(profileText)) this.point = RegExp.$1; // 可用分
        
        var re = /\<nickName\>(.*?)\<\/nickName\>/g;
        if (re.exec(profileText)) this.nickName = RegExp.$1; // 昵称
        
        var re = /\<username\>(.*?)<\/username\>/g;
        if (re.exec(profileText)) this.username = RegExp.$1; // 用户名
        
        var re = /\<techExpertPoint\>(.*?)\<\/techExpertPoint\>/g;
        if (re.exec(profileText)) this.techExpertPoint = RegExp.$1; // 专家分    var re = /\<nonTechExpertPoint\>(.*?)\<\/nonTechExpertPoint\>/g;
        if (re.exec(profileText)) this.nonTechExpertPoint = RegExp.$1; // 水分
    }/// <summary>
    /// 开始按钮点击事件
    /// </summary>
    function ButtonStartClick()
    {
        var userProfile = new UserProfile(
            GetUserProfile(textUsername.value, textPassword.value, textDestuser.value));
        if (userProfile.errId == 0)
        {
            textareaLog.value += 
                "-------\r\n" + 
                "用户名:" + userProfile.username + "\r\n" +
                "昵 称:" + userProfile.nickName + "\r\n" +
                "专家分:" + userProfile.techExpertPoint + "\r\n" +
                "水 分:" + userProfile.nonTechExpertPoint + "\r\n" +
                "可用分:" + userProfile.point + "\r\n";
        }
        else AppendLog("错误:#" + userProfile.errId + "原因:" + this.errInfo + "\r\n");
    }
    </script>
    </body>
    </html>
      

  3.   

    那是浏览器设置有问题,js调用公网WebService,那时没有问题的
      

  4.   

    xiaojing7的是hta啦,权限很高涅~~~``````楼主在后端搞个中转页面吧!
      

  5.   

    =============
    那只是其中的FSO用到ACTIVEX而已,该成HTM 也可以用,只不过有提示
      

  6.   


    没问题能否给我示例呀。谢谢xiaojing7 ,谢谢你,不过你给我的那个有个错误。你在本机上测试了吗?
      

  7.   

    =====================
    你说的是什么错误,查询不出来?(用户登陆,然后后面用户名)
    页面报错? 可能是你禁用了ActiveX控件PS:我在本机测试过!谢谢
      

  8.   

    http://msdn.microsoft.com/zh-cn/library/bb429619.aspx这是微软提供的地图信息服务,在本地就可以调用美国那边的Web服务功能我已经实现