??xml version="1.0" encoding="utf-8" standalone="yes"?>最新国产成人亚洲精品影院,亚洲熟妇无码乱子AV电影,在线a亚洲v天堂网2019无码http://m.tkk7.com/sonnylys/ 熟能生yQy夺天工! zh-cnMon, 12 May 2025 19:08:50 GMTMon, 12 May 2025 19:08:50 GMT60请高手解救小弟,万分感激Q用dom4j如何实现按Element的某个属性排序?Q?http://m.tkk7.com/sonnylys/archive/2009/05/15/270844.htmlSonny LiSonny LiFri, 15 May 2009 06:47:00 GMThttp://m.tkk7.com/sonnylys/archive/2009/05/15/270844.htmlhttp://m.tkk7.com/sonnylys/comments/270844.htmlhttp://m.tkk7.com/sonnylys/archive/2009/05/15/270844.html#Feedback5http://m.tkk7.com/sonnylys/comments/commentRss/270844.htmlhttp://m.tkk7.com/sonnylys/services/trackbacks/270844.html请高手解救小弟,万分感激Q用dom4j如何实现按Element的某个属性排序?Q?如下面xml文g

<?xml version="1.0" encoding="GBK"?>
<books>
  <book name="请高手解救下弟" price="30.00">
  <book name="万分感激" price="40.00">
  <book name="谢谢大家的回? price="50.00">
 </books>

我想获取books节点下的所有book子节点,q按price属性排序,如何实现Q?br />
本h阅读dom4j的文档,扑ֈorg.dom4j.xpath.DefaultXPath.selectNodes(Object context, XPath sortXPath)ҎW二个参?sortXPath"好像是用来排序的Q但不知如何写sortXPath参数?br />
先谢q,在线{?br />

说明Q本Z需要xsl排序Ҏ?br />



Sonny Li 2009-05-15 14:47 发表评论
]]>
自编 jtle(javascript template language engine) javascript模板语言引擎, L处理json数据!http://m.tkk7.com/sonnylys/archive/2008/05/25/202677.htmlSonny LiSonny LiSun, 25 May 2008 02:24:00 GMThttp://m.tkk7.com/sonnylys/archive/2008/05/25/202677.htmlhttp://m.tkk7.com/sonnylys/comments/202677.htmlhttp://m.tkk7.com/sonnylys/archive/2008/05/25/202677.html#Feedback4http://m.tkk7.com/sonnylys/comments/commentRss/202677.htmlhttp://m.tkk7.com/sonnylys/services/trackbacks/202677.html  阅读全文

Sonny Li 2008-05-25 10:24 发表评论
]]>
Prototype学习??bindҎ的“谜”迷彩!http://m.tkk7.com/sonnylys/archive/2008/05/08/199080.htmlSonny LiSonny LiThu, 08 May 2008 14:37:00 GMThttp://m.tkk7.com/sonnylys/archive/2008/05/08/199080.htmlhttp://m.tkk7.com/sonnylys/comments/199080.htmlhttp://m.tkk7.com/sonnylys/archive/2008/05/08/199080.html#Feedback6http://m.tkk7.com/sonnylys/comments/commentRss/199080.htmlhttp://m.tkk7.com/sonnylys/services/trackbacks/199080.html     Prototype的bindҎ常常把许多学习它的h弄得p糊涂涂Qgoogle和baidu一番后q是一塌胡涂!本h也如此;本h觉得它是个从“谜h”?#8220;qh”的方法。此文将发表个hҎҎ的理解,希望能帮助大家成功渡“?#8221;Q到?#8220;qh”的彼岸!
<html>
<head>
 <script src="prototype.js"></script> //@7
 <script type="text/javascript">
   /**********************************
    *
    *  实现渲染一个带?上一??下一?的组?点击"上一?,当前减1,点击"下一?当前加1
    *
    */
   function PagesSystem(container){
     this.currentPage = 10; //当前?br />      this.pageSysDiv = document.getElementById(container); //容器
    
     this.init = function() { //组件画出来
       this.createPrePage();
       this.createNextPage();
     };
    
     this.changePage = function(evtObj) { //Ҏ点击后传q来的参数决定是?或是?
        if(evtObj == "next") {
          this.currentPage += 1;
          alert("你已执行当前页?Q现在当前页是:" + this.currentPage);
        }else if(evtObj == "pre"){
          //此处不作if(this.currentPage ==1) return;限制Z体现当传入的参数?pre"Ӟ下面的alert()一定会执行
          this.currentPage -= 1;
          alert("你已执行当前页?Q现在当前页是:" + this.currentPage);
        }
      
     };
    
     this.createPrePage = function() {//创徏上一늻?br />        var _span = document.createElement("SPAN");
       _span.style.cssText = "margin-left:16px";
       var _a = document.createElement("A");
       _a.href = "#";
       _a.onclick = this.changePage; //@1 当点LQ?上一?Q铵钮时执行
       _a.innerText = "上一?;
       _span.appendChild(_a);
       this.pageSysDiv.appendChild(_span);
     };
    
     this.createNextPage = function() {//创徏下一늻?br />        var _span = document.createElement("SPAN");
       _span.style.cssText = "margin-left:16px";
       var _a = document.createElement("A");
       _a.href = "#";
       _a.onclick = this.changePage; //@2 当点LQ?下一?Q铵钮时执行
       _a.innerText = "下一?;
       _span.appendChild(_a);
       this.pageSysDiv.appendChild(_span);
     };
   
     this.init(); //执行初始?br />    }
   function testUse(msg){//@3在提出问题环节用?br />      alert(msg);
   }
   window.onload = function() {
     var ps = new PagesSystem("pageDiv");
   }
 </script>
</head>
<body>
  <div id="pageDiv"></div>
</body>
</html>

二、分析代码,提出问题Q解决问?br /> 1、无法传递参数问题?br />    你细看@1和@2?当前的代码实现是无法?pre"?next"参数传递过去,于是Q当你运行例子,点击上一|下一,都是没信息alert出来的!
   q种情况Q是很常见的。那么,如何实现参Cq去?br />    @1处代码修改如下:
                    _a.onclick = function(){ //@1 当点LQ?上一?Q铵钮时执行
                         testUse("pre"); //参看@3
                         this.changePage("pre");
                    }
   q样创徏一个匿名函数赋予_a.onclick,也就是当_a对象的onclick事g触发后将执行此匿名函敎ͼ而匿名函数将帮忙调用testUse("pre")和this.changePage("pre")两个ҎQ?br />    从而达成传递参数?br />    修改代码Q运行例子后点击上一后会显C如下两个信息,一个是testUse中输出的信息Q证明了实现参数传递,另一个却是运行错误提C?br />    

   q是执行this.changePage("pre")Ҏ抛出来的。它q没像我们预期想的运行?br />    从提C到的信息是,对象不支持此属性或ҎQ如果浏览器报的是中文提C就可以看到“对象不支持此Ҏ或属?#8221;的提C)
   回头看this.changePage("pre")ҎQ很明显this是错误提CZ所指的对象Q在本应用中指PagesSystem对象指针的引用,在应用中实是声明了this.changePage("pre")ҎQ但Z么说没此Ҏ呢?Q?Q?br /> 2、在问题1中,我们已成功解决传递参敎ͼ但PagesSystem对象的changePageҎ被谁偷了Q?Q?br />    再将刚才的代码修改如:
                     _a.onclick = function(){ //@1 当点LQ?上一?Q铵钮时执行
                       testUse("pre"); //参看@3
                       alert(this.tagName);
                       this.changePage("pre");
                    }
   再运行例子,你会发现输出this.tagName的gؓ A, 它就是_a对象。噢Q我的天啊。怎么会这PQ?
   哈哈..._a对象是<a href=""/></a>q个html 元素对象Q这里是“上一?#8221;铵钮对象Q原型中哪来changePageҎ啊,所以报错!Q!
   你可以这L解,看如下代?
     function PagesSystem(container){//此应用中的PagesSystem对象QchangePageҎ的上下文对象,也可以称为归属者?br />        //...省略其它代码
       this.changePage = function(evtObj) { //Ҏ点击后传q来的参数决定是?或是?
         if(evtObj == "next") {
           this.currentPage += 1;
           alert("你已执行当前页?Q现在当前页是:" + this.currentPage);
         }else if(evtObj == "pre"){
           //此处不作if(this.currentPage ==1) return;限制Z体现当传入的参数?pre"Ӟ下面的alert()一定会执行
           this.currentPage -= 1;
           alert("你已执行当前页?Q现在当前页是:" + this.currentPage);
         }
       };
       //...省略其它代码
     }
    
     q样的代码,你很Ҏ看出this是指PagesSystem, 那么我们l箋往下看
     假设 A对象的原型如?
     function A() {//@4
       //...
        this.onclick;
       
        this.doClick = function() { //点击
          this.onclick();//执行
        }
      
       //...
     }
    
     当你在PagesSystemҎ?br />                    _a.onclick = function(){ //@1 当点LQ?上一?Q铵钮时执行
                       testUse("pre"); //参看@3
                       alert(this.tagName);
                       this.changePage("pre");
                    }
    写上q样的代码后,你可以离p为@4的代码的模样是如下:
    function A() {//@4
       //...
        this.onclick = function(){ //@1 当点LQ?上一?Q铵钮时执行
             testUse("pre"); //参看@3
             alert(this.tagName); //@5
             this.changePage("pre"); //@6
          };
       
        this.doClick = function() { //点击
          this.onclick();//执行
        }
       //...
     }
     呵呵。。如果这L的话Q@5,@6中的this当然是指a对象Q没异义。那当然是没changePageҎ?br />     
3、那么如何解册问题呢?Q?br />    很幸q,prototype.js中的bindҎ可以解册L问题Q它q解x们上面提的传参数问题?br />    看bind大侠帅样:
  
   bind: function() {
    if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
    var __method = this, args = $A(arguments), object = args.shift();
    return function() {
      return __method.apply(object, args.concat($A(arguments)));
    }
  }
  bindҎ中的this是bindҎ的所属者(上下文)? f.bind(),f是一个声明了的方?那么bind Ҏ里的this是f
  再细看,bindҎ其实做的工作是返回一个匿名函?此匿名函数帮忙执行this所指的ҎQbindҎ的所属者)Q如果你有如下代?br />   function f(msg) {
    this.functionName = "f method";
    alert(msg);
    alert(this.functionName);
  }
 
  button.onclick = f.bind(this, msg); //q里的this指f, 在bindҎ中用object = args.shift()获得Q这L话,当点击button后执行fҎ, fҎ中的this׃会无故被 button代替。^_^不然Q会报错的啊Qbutton哪来functionNameQ呵?..
  它既解决msg参数传过去,同时fl定到button环境下,bindҎ得名可能是q意义吧。至于如何实现将fl定Q靠的就是applyҎ?br />   apply谜h色彩q你们自行L开啦!
  介绍了bind大侠l大Ӟ我的例子麻烦你们自p通它啦。谢了。?br />   
  Ƣ迎交流指正?br />
 备注Q?nbsp;如需转蝲本文Q请注明出处
    



Sonny Li 2008-05-08 22:37 发表评论
]]>
用javascript实现较ؓ通用的客L分页lghttp://m.tkk7.com/sonnylys/archive/2008/05/04/198279.htmlSonny LiSonny LiSun, 04 May 2008 14:54:00 GMThttp://m.tkk7.com/sonnylys/archive/2008/05/04/198279.htmlhttp://m.tkk7.com/sonnylys/comments/198279.htmlhttp://m.tkk7.com/sonnylys/archive/2008/05/04/198279.html#Feedback23http://m.tkk7.com/sonnylys/comments/commentRss/198279.htmlhttp://m.tkk7.com/sonnylys/services/trackbacks/198279.html <html>
<head>
 <script src="pageSystem.js"></script>
 <script>
   var psys;
   window.onload = function() {
    psys = new PageSystem(1120, "pageDiv", 10, showMsg); //总记录数, 分页pȝ容器Q每l?0?回调
    psys.init();
  }
 
  function showMsg(currentPage, pageSize) {
    //回调Ҏ自定义,两个参数Q第一个ؓ当前,W二个ؓ每页记录?br />     /****************currentPage和pageSizeh数据更新列表,最好用ajax技?*****************/
    alert("h数据要的相应参数>> currentPage: "+ currentPage + " pageSize: " + pageSize);
  }
  
   /*****如果要更新分늳l请如下操作******/
    //psys.update(count); //@count 录L
    function updatePageSys() {
    
     psys.update(150); //@count 录L
   }
  </script>
  <style>
    #pageDiv{
      font-size:13px;
    }
  </style>
</head>
<body>
  <div id="pageDiv">
  </div>
  <br/><br/>
  <a href="#" onclick="updatePageSys();"/>更新分页pȝ</a>
</body>
</html>

2、pageSystem.js
function PageSystem(count, divID, grountCount, callBack) {
     this.totolCount = count; //总记录数
     this.initMaxPage = grountCount? grountCount: 5;  //昄|Q如 1 2 3 4 5
     this.pageSize = 10;  //每页记录?br />      this.currentMax = 0; //当前昄的最大页? ?1 2 3 4 5; 5为最大页?br />      this.currentMin = 0; //当前昄的最页? ?11 12 13 14 15; 11为最页?br />      this.homePage = 0; //首页
     this.endPage = 0; //未页
     this.currentPage = 0; //当前?br />      this.currentActiveSpan; //当前zda容器
     this.pageDivObj = document.getElementById(divID); //分页pȝ容器
     this.pages = 0; //总页敎ͼ计算得到
     //this._url = _url; //提交URL
     this.callBack = callBack; //回调
     var that = this; //指针的引?br />     
   
     this.init = function() {
        this.pages = parseInt(this.totolCount / this.pageSize); //获得d有几?br />         this.pages = this.totolCount % this.pageSize == 0? this.pages: this.pages+1;
        this.createHomePage();
        this.createPrePage();
        var n = 1;
        while(n <= this.pages) {
          if(n > this.initMaxPage){
             break; //到达最大显C数
          }
          var _span = document.createElement("SPAN");
          _span.style.cssText = "margin-left:10px";
          if(n == 1) { //初始化时W一ؓzd?br />             _span.innerText = n;
            this.currentActiveSpan = _span;
          }else{
             var _a = document.createElement("A");
             _a.href = "#";
            _a.onclick = this.reView;
            _a.innerText = n;
            _span.appendChild(_a);
          }
          this.pageDivObj.appendChild(_span);
          n++;
        }
        if(this.pages != 0) {
          this.currentMax = n - 1; //当前l最大页?1 2 3 4 5gؓ5
          this.currentMin = 1; //当前最页?1 2 3 4 5 gؓ1
          this.homePage = 1; //首页
          this.endPage = this.pages; //未页
          this.currentPage = 1; //当前?br />         }
        //alert(this.currentMax);
        //alert(this.currentMin);
        this.createNextPage();
        this.createEndPage();
      
      
      
    };
    this.query = function() {
      var curPage = that.currentPage; //当前?br />       var pageSize = that.pageSize;
      if(that.callBack) that.callBack(curPage, pageSize);
         
    };
    this.reView = function() {
     //重新渲染UI
       that.reViewActivePage();
       that.query();
    };
    this.reViewActivePage = function() {
      //重新渲染当前视?br />       var actA = event.srcElement; //当前被点ȝ a对象
      var ap = actA.parentNode; //获得当前a容器span对象
      //q原当前视?br />        var _a = document.createElement("A");
        _a.href = "#";
        _a.onclick = this.reView;
        _a.innerText = that.currentActiveSpan.innerText;
        that.currentActiveSpan.innerText = "";
        that.currentActiveSpan.appendChild(_a);
       //渲染新的当前视?br />        that.currentActiveSpan = ap; //切换当前zd容?br />        var curPage = parseInt(actA.innerText);
       that.currentActiveSpan.removeChild(actA);
       that.currentActiveSpan.innerText = curPage;
       this.currentPage = curPage; //更改当前늠
       if(!that.toNextGroup()) that.toPreGroup();
    };
    this.toNextGroup = function() {
       //重新渲染昄下一l?1 2 3 4 5 --> 5 6 7 8 9
       if(that.currentPage == that.currentMax) {//点击的页码ؓ当前l最大页码,当go 下一l?br />          if(that.currentPage != that.endPage) { //如果点了未页当然不会再有下一l啦Q?br />             that.pageDivObj.innerHTML = ""; //@1
            var pageCode = parseInt(that.currentPage) + 1; //昄늠
            var n = 2; //当前zd不重创
            this.createHomePage();
            this.createPrePage();
            that.currentActiveSpan.innerText = that.currentPage;
            that.pageDivObj.appendChild(that.currentActiveSpan); //当前活动页回放,L@1
            while(pageCode <= that.pages) {
            if(n > that.initMaxPage){
               break; //到达最大显C数
            }
            var _span = document.createElement("SPAN");
            _span.style.cssText = "margin-left:10px";
            var _a = document.createElement("A");
             _a.href = "#";
            _a.onclick = that.reView;
            _a.innerText = pageCode;
            _span.appendChild(_a);
            that.pageDivObj.appendChild(_span);
            pageCode++;
            n++;
          }
          that.currentMax = pageCode - 1;
          that.currentMin = that.currentPage;
         // alert("currentMax: " + that.currentMax);
         // alert("currentMin: " + that.currentMin);
          this.createNextPage();
          that.createEndPage();
          return true;
         }//end if
       }//end if
       return false;
    };
    this.toPreGroup = function() { //
      //重新渲染昄上一l?5 6 7 8 9 -->1 2 3 4 5
      if(that.currentPage == that.currentMin) { //点了l中最页?br />         if(that.currentPage != 1) {
           that.pageDivObj.innerHTML = ""; //@2
            var pageCode = parseInt(that.currentPage) - (that.initMaxPage -1); //昄늠
            var n = 2; //当前zd不重创
            this.createHomePage();
            this.createPrePage();
            while(true) {
            if(n > that.initMaxPage){
               break; //到达最大显C数
            }
            var _span = document.createElement("SPAN");
            _span.style.cssText = "margin-left:10px";
            var _a = document.createElement("A");
             _a.href = "#";
            _a.onclick = that.reView;
            _a.innerText = pageCode++;
            _span.appendChild(_a);
            that.pageDivObj.appendChild(_span);
            n++;
          }
          that.currentMax = that.currentPage;
          that.currentMin = pageCode - (that.initMaxPage -1);
          //alert("currentMax: " + that.currentMax);
         // alert("currentMin" + that.currentMin);
          that.currentActiveSpan.innerText = that.currentPage;
            that.pageDivObj.appendChild(that.currentActiveSpan); //当前活动页回放,L@2
            that.createNextPage();
            that.createEndPage();
        }//end if
      }//end if
    };
     this.toHomePage = function(){
       //d首页
       if(that.pages == 0) return;
       if(that.currentPage != 1) {//切组
         that.pageDivObj.innerHTML = "";
         that.init();
       }//end if
       that.currentPage = 1;
       that.currentMin = 1;
       that.currentMax = that.initMaxPage;
       that.query();
     };
     this.toEndPage = function() {
       //d未页
        if(that.pages == 0 ||that.currentPage == that.pages) return;
        if(true) {//切组条g修改Q此条g作废,临时设ؓtrue
        that.pageDivObj.innerHTML = "";
        that.createHomePage();
        that.createPrePage();
        var pageCode = 1;
     var n = 1;
      while(pageCode <= that.pages) {
        if(n > that.initMaxPage-1){
          n = 1;
        }
        n++;
        pageCode++;
      }
     
      pageCode = that.pages - (n-2);
      for(var j = 1; j < n; j++) {
         var _span = document.createElement("SPAN");
       _span.style.cssText = "margin-left:10px";
       if(pageCode == that.pages) { //初始化时W一ؓzd?br />         _span.innerText = pageCode;
        that.currentActiveSpan = _span;
       }else{
         var _a = document.createElement("A");
         _a.href = "#";
         _a.onclick = that.reView;
         _a.innerText = pageCode;
         _span.appendChild(_a);
         pageCode++;
       }
       that.pageDivObj.appendChild(_span);
      }
      
         that.createNextPage();
          that.createEndPage();
       }//end if
       that.currentPage = that.pages;
       that.currentMin = that.pages - (n-2);
       that.currentMax = that.pages;
      // alert("currentMin: " + that.currentMin);
       //alert("currentMax: " + that.currentMax);
      // alert("pages: " + that.pages);
       that.query();
     };
    
     this.next = function() {
       //下一?br />      };
     this.pre = function() {
       //上一?br />      };
     this.update = function(count) {
       //更新分页pȝ
       this.totolCount = count;
       that.pageDivObj.innerHTML = "";
       this.init();
     };
     this.createPrePage = function() {
       return;
       var _span = document.createElement("SPAN");
       _span.style.cssText = "margin-left:16px";
       var _a = document.createElement("A");
       _a.href = "#";
       _a.onclick = this.pre;
       _a.innerText = "上一?;
       _span.appendChild(_a);
       this.pageDivObj.appendChild(_span);
     };
     this.createNextPage = function() {
       return;
       var _span = document.createElement("SPAN");
       _span.style.cssText = "margin-left:16px";
       var _a = document.createElement("A");
       _a.href = "#";
       _a.onclick = this.next;
       _a.innerText = "下一?;
       _span.appendChild(_a);
       this.pageDivObj.appendChild(_span);
     };
     this.createHomePage = function() {
       var homeSpan = document.createElement("SPAN");
       var _a = document.createElement("A");
       _a.href = "#";
       _a.onclick = this.toHomePage;
       _a.innerText = "首页";
       homeSpan.appendChild(_a);
       this.pageDivObj.appendChild(homeSpan);
     };
     this.createEndPage = function() {
       var _span = document.createElement("SPAN");
       _span.style.cssText = "margin-left:16px";
       var _a = document.createElement("A");
       _a.href = "#";
       _a.onclick = this.toEndPage;
       _a.innerText = "未页(" + this.pages +")";
       _span.appendChild(_a);
       this.pageDivObj.appendChild(_span);
     }
   }

3、效果图
 
如需转蝲Q请注明原文出处Q谢谢合作?/span>

Sonny Li 2008-05-04 22:54 发表评论
]]>
?window.showModalDialog()"实现DIV模式弹出H口http://m.tkk7.com/sonnylys/archive/2008/05/01/197683.htmlSonny LiSonny LiThu, 01 May 2008 13:33:00 GMThttp://m.tkk7.com/sonnylys/archive/2008/05/01/197683.htmlhttp://m.tkk7.com/sonnylys/comments/197683.htmlhttp://m.tkk7.com/sonnylys/archive/2008/05/01/197683.html#Feedback15http://m.tkk7.com/sonnylys/comments/commentRss/197683.htmlhttp://m.tkk7.com/sonnylys/services/trackbacks/197683.html 1、test.html  试?/strong>
 <html>
 <head>
   <title>试面</title>
   <style>
     .list {
       border-top:1 solid #8A2BE2;
       border-left:1 solid #8A2BE2;
       border-right:1 solid #8A2BE2;
     }
     .list td {
       border-bottom: 1 solid #8A2BE2;
     }
   </style>
   <script>
      function $(el) {
        return document.getElementById(el);
      }
      function showWin(param) {
        window.showModalDialog("dailog.htm", param, "dialogWidth:" +param.width +"px;dialogHeight:"+param.height+"px;center:yes;help:no;scroll:no;status:no;resizable:no");
      }
     
      function TB(tbid) {
        this.tb = typeof(tbid) == "string"? $(tbid): tbid;
        this.getValue = function(rowIndex, cellIndex){
          var trs = this.tb.rows[rowIndex];
          var _td = trs.cells[cellIndex];
          return _td.innerText;
        }
        this.setValue = function(rowIndex, cellIndex, value) {
          var _tr = this.tb.rows[rowIndex];
          var _td = _tr.cells[cellIndex];
          _td.innerText = value;
        }
       
        /********获取行烦?*******/
        this.findRowIndex = function(eventSrc) {
          var _tr = eventSrc; //eventSrc事g?必须在TD里获事g源是TD或TR本n
          while(_tr.tagName != "TR") {
            _tr =  _tr.parentNode;
          }
          var trs = this.tb.rows;
          for(var i = 0; i < trs.length; i++){
            if(_tr == trs[i]) return i;
          }
        }
      }
          
      function edit() {
        var tb = new TB("data");
        rIndex = tb.findRowIndex(event.srcElement);
        $("updateRowIndex").value = rIndex;
        $("userName").value = tb.getValue(rIndex, 1); //获得姓名
        $("sex").value = tb.getValue(rIndex, 2); //获得性别
        $("age").value = tb.getValue(rIndex, 3); //获得q龄
         showWin({title:"修改用户信息", width:390, height:230, _div:"openWin",parent:window});
      }
     
      function saveAndUpdateView(){
        var updateRowIndex = $("updateRowIndex").value;
        var tb = new TB($f("data")); //$f()在dailog.html定义,获到的table是父H口中的table
        tb.setValue(updateRowIndex, 1, $("userName").value);
        tb.setValue(updateRowIndex, 2, $("sex").value);
        tb.setValue(updateRowIndex, 3, $("age").value);
        close();
      }
   </script>
  
 </head>
 <body>
  <p style="margin-top:60px">
   <center>
     <table id="data" class="list" width="460px">
       <tr>
         <td>~号</td>
         <td>用户?lt;/td>
         <td>性别</td>
         <td>q龄</td>
         <td>操作</td>
       </tr>
       <tr>
         <td>1</td>
         <td>李永?lt;/td>
         <td>?lt;/td>
         <td>27</td>
         <td><span style="background:#FAEBD7;cursor:hand" onclick="edit();">&nbsp;修改&nbsp;</span></td>
       </tr>
        <tr>
         <td>2</td>
         <td>林兄</td>
         <td>?lt;/td>
         <td>27</td>
         <td><span style="background:#FAEBD7;cursor:hand" onclick="edit();">&nbsp;修改&nbsp;</span></td>
       </tr>
        <tr>
         <td>3</td>
         <td>叶兄</td>
         <td>?lt;/td>
         <td>23</td>
         <td><span style="background:#FAEBD7;cursor:hand" onclick="edit();">&nbsp;修改&nbsp;</span></td>
       </tr>
     </table>
   </center>
  </p>
 
  <!---弹出H口昄的内?--->
  <div id="openWin" style="display:none;">
    <form>
      <fieldSet>
        <legend>修改用户</legend>
        <table>
          <tr>
            <td>用户?lt;/td><td><input type="text" id="userName"/></td>
          </tr>
          <tr>
            <td>性别</td><td><input type="text" id="sex"/></td>
          </tr>
          <tr>
            <td>q龄</td><td><input type="text" id="age"/></td>
          </tr>
        </table>
      </fieldSet>
      <input type="hidden" id="updateRowIndex"/>
    </form>
    <span style="background:#FAEBD7;cursor:hand" onclick="saveAndUpdateView();">&nbsp;修改&nbsp;</span>
  </div>
 </body>
</html>

2、dailog.html H口原型

<html>
 <head>
   <script>
     var param = window.dialogArguments; //传过来的模式对话框窗口参?br />      document.title = param.title; //H口标题,必须在窗口创建前实现s
    
   /********父H口的js加蝲q来********/
     var scripts = param.parent.document.scripts;
     var _head = document.getElementsByTagName("head")[0];
     for(var n = 0; n < scripts.length; n++) {
       if(scripts[n].src) {
         var _script = newEl("script");
         _script.src = scripts[n].src;
         bind(_head, _script);
       }else{//加蝲直接在html文档中写的script
         var _script = newEl("script");
         _script.text = scripts[n].text;
          bind(_head, _script);
       }
     }
    
     /*******ҎID获得父窗口的元素*********/
     function $f(el) {
       return param.parent.document.getElementById(el);
     }
   
    /***********创徏一个HTML元素*******/
     function newEl(tagName) {
       return document.createElement(tagName);
     }
     /***********q加元素***************/
     function bind(ower, child) {
       ower.appendChild(child);
     }
     /*******在浏览器完成对象的装载后立即触发*********/
     window.onload = function() {
       var winDiv;
       if(typeof(param._div) == "string") {
         winDiv = param.parent.document.getElementById(param._div); //父窗口window对象,因ؓparam._div对象在父H口
       }else{//直接传对象过?br />          winDiv = param._div;
       }
       $("mainDiv").innerHTML = winDiv.innerHTML; //DIV内容在弹出窗口中渲染
    }
   </script>
 </head>
 <body>
 <center>
  <div id="mainDiv" style="margin-top:20px;width:90%"></div>
 </center>
 </body>
</html>

如需转蝲Q请注明原文出处Q谢谢合作?/span>


Sonny Li 2008-05-01 21:33 发表评论
]]>
用模式对话框实现“消息提C框”和“操作提C框?/title><link>http://m.tkk7.com/sonnylys/archive/2008/05/01/197655.html</link><dc:creator>Sonny Li</dc:creator><author>Sonny Li</author><pubDate>Thu, 01 May 2008 07:54:00 GMT</pubDate><guid>http://m.tkk7.com/sonnylys/archive/2008/05/01/197655.html</guid><wfw:comment>http://m.tkk7.com/sonnylys/comments/197655.html</wfw:comment><comments>http://m.tkk7.com/sonnylys/archive/2008/05/01/197655.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.tkk7.com/sonnylys/comments/commentRss/197655.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/sonnylys/services/trackbacks/197655.html</trackback:ping><description><![CDATA[<br />   ׃本h认ؓ?alert()和confirm()的消息框和操作确认对话框Q界面不太友好,下面介绍用模式对话框实现“消息提示  ?#8221;?#8220;操作提示?#8221;Q用模式对话框也可以实现弹出H口(抱括Iframe模式及DIV模式Q,DIV模式较麻烦些Q不q,q挺实用Q这里不作介l? <p><span style="color: red"><strong>1、test.html 试?/strong></span><br /> <html><br />  <head><br />    <title>试面</title><br />    <script><br />      /**** 打开消息?***<br />    * @param 为Objectcd,原型?{msg:"val1", time:val2},val1提示的消息,val2为窗口出来后延迟关闭的时?<br />    *<br />    */<br />    function showMsg(param) {<br />      window.showModalDialog("msg.html", param, "dialogWidth:280px;dialogHeight:180px;center:yes;help:no;scroll:no;status:no;resizable:no");<br />    }</p> <p>  /****操作认H口*****<br />    * @param 为stringcd,提示信息<br />    * @return true为选取?#8220;定”铵钮Qfalse为选取?#8220;取消”铵钮<br />    */<br />    function confirm(msg) {<br />     return window.showModalDialog("confirm.html", msg, "dialogWidth:280px;dialogHeight:180px;center:yes;help:no;scroll:no;status:no;resizable:no");<br />   }<br />    <br />    <br />      function confirmDel() {<br />        var rval = confirm("定删除此用户吗Q?);<br />        if(rval) {<br />          showMsg({msg:"你点M定铵钮", time:1200});<br />        }else{<br />          showMsg({msg:"你点M取消铵钮", time:1200});<br />        }<br />      }<br />    </script><br />  </head><br />  <body><br />    <center><br />      <a href="#" onclick="showMsg({msg:'1U钟后会自动关闭的提CZ息框', time:1000})">会自动关闭的提示信息?lt;/a><br />      <br/><br />      <a href="#" onclick="confirmDel();">操作认对话?lt;/a><br />    </center><br />  </body><br /> </html><br /> </p> <span style="color: red"><strong>2、msg.html 消息框通用模板</strong></span><br /> <html><br />  <head><br />    <title>提示对话?lt;/title><br />    <script><br />       var obj = window.dialogArguments; //传过来的模式对话框窗口参?br />       /****在obj.timeU后关闭H?***/<br />       window.setTimeout(function() {<br />        window.close();<br />       }, obj.time);<br />    </script><br />  </head><br />  <body><br />   <p style="margin-top:36px"><br />    <center><br />      <script><br />         document.write(obj.msg);  //打印信息<br />      </script><br />    </center><br />   </p><br />  </body><br /> </html><br /> <br /> <span style="color: red"><strong>3、confirm.html</strong></span><br /> <html><br />  <head><br />    <title>操作认对话?lt;/title><br />    <script><br />      function setState() {<br />        returnValue = event.srcElement.id == "ok"? true: false;<br />        window.close();<br />      }<br />    </script><br />  </head><br />  <body><br />   <p style="margin-top:26px"><br />    <center><br />      <script><br />        var msg = window.dialogArguments? window.dialogArguments: "";<br />        document.write(msg);<br />      </script><br />      <br/><br />      <div style="margin-top:20px"><br />       <a href="#" id="ok" onclick="setState()">定</a><br />       <a href="#" id="cal" onclick="setState()">取消</a><br />      </div><br />    </center><br />   </p><br />  </body><br /> </html><br /> <br /> q行test.html例子可以看到相应的效?br /> <img height="332" alt="" src="http://m.tkk7.com/images/blogjava_net/sonnylys/confirm.jpg" width="418" border="0" /><br /> <br /> <br /> <img height="367" alt="" src="http://m.tkk7.com/images/blogjava_net/sonnylys/msg.jpg" width="338" border="0" /> <img src ="http://m.tkk7.com/sonnylys/aggbug/197655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/sonnylys/" target="_blank">Sonny Li</a> 2008-05-01 15:54 <a href="http://m.tkk7.com/sonnylys/archive/2008/05/01/197655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>单的javascript入门知识http://m.tkk7.com/sonnylys/archive/2008/04/27/196669.htmlSonny LiSonny LiSun, 27 Apr 2008 14:53:00 GMThttp://m.tkk7.com/sonnylys/archive/2008/04/27/196669.htmlhttp://m.tkk7.com/sonnylys/comments/196669.htmlhttp://m.tkk7.com/sonnylys/archive/2008/04/27/196669.html#Feedback2http://m.tkk7.com/sonnylys/comments/commentRss/196669.htmlhttp://m.tkk7.com/sonnylys/services/trackbacks/196669.html     一?JavaScript E序其实是一个文档,一个文本文Ӟ它嵌入到 HTML 文档中执行。所以,一般的本文~辑器就可以实现~写javascript代码?br />    1、将javascript嵌入到HTML文档中,一般有两种实现Ҏ。一U是直接在HTML文档中的M地方加入<script>
  <!--你的js代码-->
</script>
值得注意的是Qjs代码必须?lt;frameset>之前插入才有效?br /> 另一U是js代码写在一个以 .js为后~的js文g里,用以下方法引入到HMTL档供使用
 <script src="你要引入?js文g的\? type="text/javascript"></script>
q两U实现的例子如下Q?br /> <html>
 <head>
   <title>js exmaple</title>
 <!--直接在HMTL文档中写js代码--> 
  <script> 
      function  sayHello() {
          alert("hello");
     }
   </script>
 <!--?js文g中加?->
  <script src="myjs/util.js"></script>
  </head>
 <body>
</body>
</html>
2、变量声?br />   javascript中用 var关键字声明一个变量,如:var userName;׃javascript使用的是q型,所以声明时不需要指定具体类型,在运行时会根据所赋的值检查其数据cd。比如声?var v; 在运行中如果出现v = 123;那么变量v指数值类型,如果q行中出现的是v = "123"Qv 为字W串cd?br /> 3、函数声明,介绍两种型式
  一、function sayHello(who) { //who为参?br />               alert("say hello to: " + who);
         }
  二、var sayHello = function(who) {
               alert("say hello to: " + who);
         }
  说明Q第二种声明方式是将函数的指针赋l一个变量,调用如下QsayHello("whoOne");和第一U声明方式调用一栗D个第二种声明方式有用的应用,如,在js代码中,l一个铵钮的onclick事g注册一个方法可以如下声明:    var btn = document.createElement("button"); 
              btn.onclick= function() {
                //d当点L铵钮时想执行的js代码
              }
4、事件响?br />    声明了的函数可以在js代码里被调用Q也可以用于响应事g。如Q?br />  <html>
 <head>
   <title>js exmaple</title>
 <!--直接在HMTL文档中写js代码--> 
  <script> 
      function  sayHello() {
          alert("hello");
     }
   </script>
  </head>
  <body>
   <!--响应button中的onclick事gQ单MӞ,调用sayHello()Ҏ-->
   <button onclick="sayHello()">点击调用sayHello()Ҏ来响?lt;/button>
 </body>
</html>
q行例子Q点击铵钮后q行l果如下Q?br />  


备注Q这是一很单的javascript相关知识文章Q适合对javascript完全没概늚初学者参考, 有误之处Q请指正讨论?br />
  
     
 

  

Sonny Li 2008-04-27 22:53 发表评论
]]>
Spring与Struts集成开?/title><link>http://m.tkk7.com/sonnylys/archive/2008/03/01/183112.html</link><dc:creator>Sonny Li</dc:creator><author>Sonny Li</author><pubDate>Sat, 01 Mar 2008 03:08:00 GMT</pubDate><guid>http://m.tkk7.com/sonnylys/archive/2008/03/01/183112.html</guid><wfw:comment>http://m.tkk7.com/sonnylys/comments/183112.html</wfw:comment><comments>http://m.tkk7.com/sonnylys/archive/2008/03/01/183112.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.tkk7.com/sonnylys/comments/commentRss/183112.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/sonnylys/services/trackbacks/183112.html</trackback:ping><description><![CDATA[<p><br /> Spring与Struts集成开?br /> <br /> 最q喜Ƣ将所学的东西理顺一下,且发现写blog可以达成q目的?br /> 那就来整理一下我对Spring与Struts集成开发的一些想法?br /> <br /> 首先认pȝ的结构ؓ三层的B/S模式l构Q如下图Q?br /> <img style="width: 514px; height: 339px" height="339" alt="" src="http://m.tkk7.com/images/blogjava_net/sonnylys/three.jpg" width="514" border="0" /><br /> 在图中看出,Spring和Struts集成开发中QSpring在业务逻辑层被使用Q集成)。因为Spring框架的依赖注入,AOP及可声明的事务管理方面的技术优势,使得用Spring来管理业务实体,实体之间的依赖关p,业务逻辑服务接口变得单且可配|。至此我们要清楚Q?span style="color: red">Spring和Struts集成开发中QSpring在业务逻辑层被使用Q集成)?/span><br /> <br /> 清楚Struts和Spring在系l结构中分别充当的角色后Q接下来要讨论:<span style="color: #000000"><span style="color: #ff0000">如何实现集成</span>Q?br /> <strong style="color: #0000ff">1、用Spring的ActionSurpertc集成Struts?/strong><br /> org.springframework.web.struts.ActionSurpert是一个承org.apache.struts.action.Action的类Q简要代码如下:<br /> public abstract class ActionSurpert extends Action {<br />      private WebApplicationContext webApplicationContext;<br />      public void setServlet(ActionServlet actionServlet) {//<span style="color: red">当容器实例化此Action时被容器调用<br /> </span>           surper.setServlet(actionServlet);<br />            if(actionServlet != null) {<br />               this.webApplicationContext = initWebApplicationContext(actionServlet);//<span style="color: red">获取webApplicationContext<br /> </span>               //........<br />            }else{<br />              //.......<br />            }           <br />      } <br />      <br />      //通过getXXX()Ҏ获取   webApplicationContext 对象<br />      protected final WebApplictionContext getWebApplicationContext() {<br />             return this.webApplicationContext;<br />     }<br /> }<br /> 通过上述代码可以看出Q所有承了ActionSupportcȝAction可以通过WebApplicationContext对象的getBean(beanKey)Ҏ获得Spring配置文g中定义的各种Bean?br /> WebApplicationContext要由Web Server来加载,有两U方法:<br /> Q、通过org.springframework.web.struts.ContextLoaderPlugIn加蝲QContextLoaderPlugIn是个插gQ需要在Struts配置文g中配|?br /> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"><br />    <set-property property = "contextConfigLocation" value="/WEB-INF/applicationContext.xml"></set-property><br /> </plug-in><br /> 2、在web.xml文g中加?br /> <context-param><br />   <param-name>contextConfigLocation</param-name><br />  <param-value>/WEB-INF/applicationContext.xml</param-value><br /> </context-param><br /> <servlet><br />  <servlet-name>context</servlet-name><br /> <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-name><br /> <load-on-startup>1</load-on-startup><br /> </servlet><br /> 举个单的例子说明一下相关配|信息:<br /> 假定有ExampleActionQExampleBeanQExampleServiceq几个类Q它们工作流E是Q?br /> 用户hExampleActionQExampleAction调用ExampleService的接口方法对ExampleBeanq行相关的操作?br /> 1、applicationContext.xml中配|相关的bean信息<br /> <beans><br /> <bean id="<span style="color: red">dataSource</span>" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><br />   <property name="driverClassName"><br />    <value>com.mysql.jdbc.Driver</value><br />   </property><br />   <property name="url"><br />    <value>jdbc:mysql://localhost:3306/ssh?useUnicode=true&amp;characterEncoding=UTF-8</value><br />   </property><br />   <property name="username"><br />    <value>root</value><br />   </property><br />   <property name="password"><br />    <value>root</value><br />   </property><br />  </bean><br /> <bean id="<span style="color: red">exampleBean</span>" class="org.mypackge.beans.ExampleBean"/><br /> <bean id="<span style="color: red">exampleBeanService</span>" class="org.mypackge.services.ExampleService"/>@<br /> </beans><br /> 通过q样配置后,在ExampleAction中可以用getWebApplicationContext() 获得webApplicationContext对象Q然后通过<br /> webApplicationContext的getBean(<span style="color: red">beanKey</span>)Ҏ获得相应的beanq行业务处理。标了红色的"beanKey"是applicationContext.xml?lt;bean>元素定义的bean idQ如:webApplicationContext.getBean("<span style="color: red">exampleBeanService</span>")。@<br /> <br /> 当然QExampleActionq要在stuts-config.xml配置文g中配|,q里不作介绍?br /> <strong style="color: #0000ff">2、用Spring的Action代理集成Struts</strong><br /> q种集成方式的核心思想是,Struts的配|文件中的所有Action的type属性设为org.springframwork.web.struts.DelegationActionProxy。当用户hActionӞ执行这代理Q代理会在Spring应用上下文中扑ֈ真正的ActionQ然后交l它处理用户的请求。而真正用于处理用戯求的Action的配|放在了Spring的配|文件中。这PStruts中的Action以及其依赖关pd可以用Spring容器来管理,比如业务逻辑对象注入到Action中,供其使用。简单片D?lt;bean<span style="color: #ff99cc"> name="/exampleAction" </span>class="org.myproj.struts.actions.ExampleAction"><br /> ....<br /> </bean><br /> 说明Q用name属性而不是用id来标识这个Bean,Spring不允许ID中出?/"Q而name可以Q?name"属性D和struts-config.xml文g中相?lt;action>元素中的path属性值相?span style="color: #ff99cc">(<action path="/exampleAction"</span>)Q这样Action代理才能扑ֈ相应的Action来处理请求?br /> <br /> Ƣ迎讨论Q提出宝贉|见?br /> <br /> <br /> </p> </span> <img src ="http://m.tkk7.com/sonnylys/aggbug/183112.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/sonnylys/" target="_blank">Sonny Li</a> 2008-03-01 11:08 <a href="http://m.tkk7.com/sonnylys/archive/2008/03/01/183112.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts与hibernate集成开?/title><link>http://m.tkk7.com/sonnylys/archive/2008/02/29/183017.html</link><dc:creator>Sonny Li</dc:creator><author>Sonny Li</author><pubDate>Fri, 29 Feb 2008 10:44:00 GMT</pubDate><guid>http://m.tkk7.com/sonnylys/archive/2008/02/29/183017.html</guid><wfw:comment>http://m.tkk7.com/sonnylys/comments/183017.html</wfw:comment><comments>http://m.tkk7.com/sonnylys/archive/2008/02/29/183017.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/sonnylys/comments/commentRss/183017.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/sonnylys/services/trackbacks/183017.html</trackback:ping><description><![CDATA[struts与hibernate集成开?br /> 最q学习struts与hibernate相关知识Q下面是个h对struts与hibernate集成开发的一些见解,写出来跟大家共同讨论、学习,Ƣ迎指教?br />  要集成struts与hibernateq行开发,首先应该了解一下struts和hibernate框架各自的工作原理和模式般的开发流E?br /> 首先介绍struts的大概工作流E,下面通过一张struts工作的时序图来说明其工作程Q?br /> <img height="527" alt="" src="http://m.tkk7.com/images/blogjava_net/sonnylys/active.jpg" width="555" border="0" /><br /> Struts工作程分析Q?br /> 1QWeb服务器启动,初始化ActionServlet,dstruts-config.xml文g配置信息Q把q些信息分发到相应的对象中?br /> 2Q用户发求后QActionServlet接收到请求,查找与请求匹配的Action映射对象QActionMapping)对象是否存在Q是Q将h以及Actionform对象传递给相应的Action对象?br /> <span style="color: red"><strong>3QAction调用业务逻辑服务接口Q结合ActionFormQ对用户的请求做出处理?/strong><br /> </span>4QAction处理完毕q回ActionForward对象lActionServlet。ActionForward对象包含了{发目标对象,可以是jsp或Action?br /> 5)ActionServletҎActionForward对象的指向l{发请求,重复从第2步进行处理?br /> xQ我们对struts 的基本工作流E有个整体的认识Q但q没提hibernate相关的Q何知识,业务逻辑层也只是在第3)点微提一下?br /> <br /> 接下来,我们来看下hibernate是怎样工作的?(注:在这不是讨论QRQ的实现Q只讨论怎让hibernateqORM中间件工作)<br /> Hibernate是个独立的框Ӟ它不依赖M的Web Server或Application ServerQ就是说不需要这些支持?br /> Hibernate有五个核心接口,分别为Configuratoin, SessionFactory, Session,Query及Criteria。通过q些接口可以完成hibernate的初始化Q对持久化对象进行存取,更新{操作?br /> 下面要介始一下这些接口?br /> 1、Configuration接口 是Hibernate应用的入口,在开始用Hibernate的各U功能之前需要先创徏Configuration对象。它负责加蝲Hibernate 应用配置文gQ如Configuration cf = new Configuration.configure("com/myproj/hibernate/configs/hibernate.cfg.xml");<br /> 2、SessionFactory接口 ~存了Configuration对象所包含的配|信息,能根据映信息自动生成SQL语句Qƈ提供生成Session对象的方法?br /> 3、Session接口提供一pd持久化的操作?br /> 到此Q可以写一段代码来加看下如何使用hibernate<br /> Configuration cf = new Configuration.configure("com/myproj/hibernate/configs/hibernate.cfg.xml");//配置文g不在此作介绍<br /> SessionFactory sessionFactory = cf.buildSessionFactory();<br /> Session session = sessionFactory.openSession();<br /> session.update();<br /> session.save();{等持久化操作?br /> xQ简单介l了hibernate 是怎样工作的,其实我只惌你清楚:“<span style="color: red">Hibernate是个独立的框Ӟ它不依赖M的Web Server或Application ServerQ就是说不需要这些支持?#8221;<br /> </span><br /> 那么Q我们要回到主题来:如何集成struts与hibernate开发?{案很简单:hibernate和struts本质上是没什么联pȝQ只要你CQ?span style="color: red">Hibernate是个独立的框Ӟ它不依赖M的Web Server或Application Server?/span>用DAO模式把hibernate持久化的操作装好,供业务逻辑服务c调用就可以。回q头来看struts工作时序图的解释的W三点:“<span style="color: red"><strong>3QAction调用业务逻辑服务接口Q结合ActionFormQ对用户的请求做出处理?/strong></span>”Q不隑־出:<br /> 用户h后,struts负责扑ֈ相应的Action对象QAction调用业务逻辑服务接口Q业务逻辑服务接口调用DAO接口(q里默认的实现就用hibernate,当然, q可以有多种Ҏ据库操作的实玎ͼ<br /> hibernate充当下面q张图中?持久层(DAOQ?<br /> <img height="468" alt="" src="http://m.tkk7.com/images/blogjava_net/sonnylys/bs.jpg" width="535" border="0" /><br /> <br /> ׃本h对struts及hibernate认识不深Q写q篇文章只是抛砖引玉Q希望高手们发表意见指正错误Q多指教?br /> <br /> <br /> <br /> <br /> <br /> <img src ="http://m.tkk7.com/sonnylys/aggbug/183017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/sonnylys/" target="_blank">Sonny Li</a> 2008-02-29 18:44 <a href="http://m.tkk7.com/sonnylys/archive/2008/02/29/183017.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://gdporun.com" target="_blank">޶ɫۺɫž</a>| <a href="http://bjlfggcm.com" target="_blank">޼ɫС˵</a>| <a href="http://snbbearing.com" target="_blank">պĻƵ</a>| <a href="http://xww678.com" target="_blank">ľþþƷ1</a>| <a href="http://hkcdk.com" target="_blank">СƵ߹ۿ</a>| <a href="http://yy468.com" target="_blank">һѹۿ</a>| <a href="http://dazhe777.com" target="_blank">ĻþþƷ2021</a>| <a href="http://zzyqr.com" target="_blank">ѲĻ</a>| <a href="http://paweax.com" target="_blank">վѹۿ</a>| <a href="http://biarn.com" target="_blank">һ </a>| <a href="http://9527paotui.com" target="_blank">Ʒ˳ɵӰ߹ۿ</a>| <a href="http://mangaou.com" target="_blank">ĻþþƷVA</a>| <a href="http://138site.com" target="_blank">͵ۺ</a>| <a href="http://onisterwines.com" target="_blank">Ұѹۿ</a>| <a href="http://tltcn.com" target="_blank">ѲëƬƵ </a>| <a href="http://19933k.com" target="_blank">޸һӰ</a>| <a href="http://4438xa48.com" target="_blank">ҹ޾ƷƬ </a>| <a href="http://adcaes.com" target="_blank">һAVѲ</a>| <a href="http://taoduoduo666.com" target="_blank">ҹƵ</a>| <a href="http://rseav.com" target="_blank">޵һҳպר</a>| <a href="http://www-456446.com" target="_blank">ձվ</a>| <a href="http://ddtase.com" target="_blank">wwwѸƵ</a>| <a href="http://hn-hshb.com" target="_blank">뿨ͨҰ</a>| <a href="http://dzhyyy.com" target="_blank">vaþþþ</a>| <a href="http://pppmmmm.com" target="_blank">ĻӰԺ4hu</a>| <a href="http://lfpfjc.com" target="_blank">޸Ʒһ</a>| <a href="http://wwwv27.com" target="_blank">97Ƶѹۿ2</a>| <a href="http://lyjhjx.com" target="_blank">һɫaƬþëƬ</a>| <a href="http://www16am8.com" target="_blank">ҹӰ߹ۿ</a>| <a href="http://5shitou.com" target="_blank">ɫ͵ר</a>| <a href="http://cswsfz.com" target="_blank">ҹ³˿ƬAV</a>| <a href="http://cc88899.com" target="_blank">91ƷѾþþþþ </a>| <a href="http://xjtuykw.com" target="_blank">ҹƬ</a>| <a href="http://by11gun.com" target="_blank">޳avƬ롿</a>| <a href="http://5g5t.com" target="_blank">޸һ</a>| <a href="http://www-34595.com" target="_blank">޾Ʒ߹ۿ㶮 </a>| <a href="http://yuezhaoming.com" target="_blank">ؼaaaaaaaaaëƬƵ</a>| <a href="http://yamashida.com" target="_blank">ͼƬӰ</a>| <a href="http://22youjizz.com" target="_blank">޹Ʒһ</a>| <a href="http://815389.com" target="_blank">ŷ޾Ʒ</a>| <a href="http://8888kkk.com" target="_blank">Ƶ߾Ʒ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>