zoukankan      html  css  js  c++  java
  • 用javascript通过MetaWeblog获取Blog

    代码如下: 用户名: 密码: BlogID: 获取个数:

    [Ctrl+A 全选 提示:你可先修改部分代码,再点运行代码]


    <div id=load style="display:none; position:absolute;right:0px;top:0px;background:#FF5B5B;border:1px solid">正在加载...</div>
     用户名:<input id=username value=''>
     密码:<input type=password id=password value=''>
     BlogID:<input id=blogid value=''><button onclick="getUsersBlogs();">获取BlogID</button>
    <textarea style="100%;height:50px;" readonly id=sdtext></textarea>
    <textarea style="100%;height:100px;" readonly id=gttext></textarea>
    获取个数:<input id=getcount style="20px;" value = '5'><button onclick="getRecentPosts();">获取最新Blogs</button>

    <div id='blogs'></div>
    <xml id=xslt>
    <?xml version='1.0' encoding='utf-8'?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>

    <xsl:template match="/methodResponse/params/param/value/array/data">

       <xsl:for-each select="value/struct">

        <div style="background:#EEEEEE"><a href="{member[6]/value/string}" target="_blank"> <xsl:value-of select="member[3]/value/string"/></a> <xsl:value-of select="member/value/dateTime.iso8601"/></div>
     <div><xsl:value-of select="member[2]/value/string" disable-output-escaping="yes" /></div>

       </xsl:for-each>
    </xsl:template>

    </xsl:stylesheet>
    </xml>

    <script language="javascript">

    MetaWeblog = function(methodName,rsFunction)
    {
     this.fnResult = rsFunction;
     var methodname = methodName;
     var ptext = '';
     this.Add = function(v,tp) {
      if (!tp) tp='string';
      ptext += "<param><value><" +tp+ ">"+ v +"</"+tp+"></value></param>";
     }
     this.GetParamsText = function() {
      return '<?xml version="1.0"?><methodCall><methodName>'+methodname+"</methodName><params>"+ptext+"</params></methodCall>";  
     }
     this.clear = function() {
      ptext = '';
     }
    }

    function $(id) { return document.getElementById(id); }


    function getUsersBlogs()
    {
    var blogid = new MetaWeblog('blogger.getUsersBlogs',rsgetUsersBlogs);
    blogid.Add('123456798');
    blogid.Add($('username').value);
    blogid.Add($('password').value);
    GetResponseXML(blogid);
    }

    function rsgetUsersBlogs(oXml)
    {
      var node = oXml.selectSingleNode('/methodResponse/params/param/value/array/data/value/struct/member/value/string');
      $('blogid').value = node.text;
    }

    function getRecentPosts()
    {
    var blog = new MetaWeblog('metaWeblog.getRecentPosts',rsgetRecentPosts);
    blog.Add($('blogid').value);
    blog.Add($('username').value);
    blog.Add($('password').value);
    blog.Add($('getcount').value,'int');
    GetResponseXML(blog);  
    }
    function rsgetRecentPosts(oXml)
    {
     var txt = oXml.transformNode(xslt.documentElement);
     $('blogs').innerHTML = txt;
    }
     var xmlhttp ;
     function GetResponseXML(MWeblog)
     {
       var metaWeblog = MWeblog;
       load.style.display='';
         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
         xmlhttp.onreadystatechange = function() {
       window.status += xmlhttp.readyState+' ';
       
         if(xmlhttp.readyState == 4)
         {
          load.style.display='none';
          window.status = '获取数据结束。';
           if(xmlhttp.status == 200)
        {
        var xmlReturn = xmlhttp.responseText;
        $("gttext").value=xmlReturn;
        metaWeblog.fnResult(xmlhttp.responseXML);
        }
        else
        {
          alert("出现错误:\n"+xmlhttp.statusText+"\n"+xmlhttp.status);
        }
        xmlhttp = null;
         }      
        }
         //var murl = 'http://pharaoh.cnblogs.com/services/metablogapi.aspx';
         var murl='http://'+$('username').value+'.cnblogs.com/services/metablogapi.aspx'
            xmlhttp.Open("POST",murl,true);
            var sendText = metaWeblog.GetParamsText();
            $('sdtext').value = sendText;
            xmlhttp.Send(sendText);
            window.status = '开始获取...';
    }


    </script>

  • 相关阅读:
    2020总结来了,文末有福利
    CentOS 用户请关注,你期待的 CentOS Linux 9 再也不会来了
    全球最好的10款波尔多葡萄酒,拉菲居然垫底
    eth以太坊合约开发工具集
    html格式的文字去掉html tag转为纯text文字
    如何隐藏X-Powered-By
    aiXcoder3.0呼之欲出,代码补全 AI,带你进入「个性化智能编程时代」
    windows故障群集修改心跳网卡【原创】
    keepalived非争抢机制不生效报错Received lower prio advert, forcing new election
    MySQL主从复制,启动slave时报错1872 Slave failed to initialize relay log info structure from the repository
  • 原文地址:https://www.cnblogs.com/winner/p/616589.html
Copyright © 2011-2022 走看看