五月天久久综合网,在线这里只有精品,最新日韩avhttp://www.aygfsteel.com/stevenjohn/category/52110.html那些青春的歲月zh-cnThu, 12 Sep 2013 08:12:30 GMTThu, 12 Sep 2013 08:12:30 GMT60JavaScript 函數定義方式http://www.aygfsteel.com/stevenjohn/archive/2013/09/06/403755.htmlabinabinFri, 06 Sep 2013 05:44:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2013/09/06/403755.htmlhttp://www.aygfsteel.com/stevenjohn/comments/403755.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2013/09/06/403755.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/403755.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/403755.html第一種:最基本的作為一個本本分分的函數聲明使用。
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Validate Page</title>
</head>
<script type="text/javascript">
function validate(abin){
    var lee=function(parameter){
        return 'hello,'+abin;
    }(abin);
    document.getElementById("spanId").innerHTML=lee;
}
</script>

<body>
    <div id="divId" class="divs">
        <input id="button" type="button" value="請猛擊" onclick="validate('varyall')"/>
    </div>
    <br/>
    <span id="spanId" class="spans"></span>
</body>
</html>
 


第二種:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<html>
<head>
<title>Validate Page</title>
</head>
<script type="text/javascript">
var validate=function(abin){
    var lee=function(parameter){
  return 'hello,'+parameter;
 }(abin);
 document.getElementById("spanId").innerHTML=lee;
};
</script>
<body>
 <div id="divId" class="divs">
  <input id="button" type="button" value="請猛擊" onclick="validate('varyall')"/>
 </div>
 <br/>
 <span id="spanId" class="spans"></span>
</body>
</html>


第三種:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
<html>
<head>
<title>Validate Page</title>
</head>
<script type="text/javascript">
var validate=new Function("abin",
  "var lee=function(parameter){return 'hello,'+parameter;}(abin);document.getElementById('spanId').innerHTML=lee;");
</script>
<body>
 <div id="divId" class="divs">
  <input id="button" type="button" value="請猛擊" onclick="validate('who')"/>
 </div>
 <br/>
 <span id="spanId" class="spans"></span>
</body>
</html>



abin 2013-09-06 13:44 發表評論
]]>
指定時間加載圖片,加載不出來就顯示文字http://www.aygfsteel.com/stevenjohn/archive/2013/07/31/402199.htmlabinabinWed, 31 Jul 2013 06:33:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2013/07/31/402199.htmlhttp://www.aygfsteel.com/stevenjohn/comments/402199.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2013/07/31/402199.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/402199.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/402199.html <script type="text/javascript" >
  var EventUtil = {
       addHandler: function (element, type, handler) {
           if (element.addEventListener) {
               element.addEventListener(type, handler, false);
           } else if (element.attachEvent) {
               element.attachEvent("on" + type, handler);
           } else {
               element["on" + type] = handler;
           }
       }
   };
   EventUtil.addHandler(document, "DOMContentLoaded", function (event) {
    setTimeout(function(){
     var imgs=document.getElementsByTagName("img");
     for (var i =0; i<=imgs.length;i++){
      var img=imgs[i];
      var height,width;
      height=img.naturalHeight;
      width=img.naturalWidth;
      if((height==0&&width==0)){
       img.src="";
       img.parentNode.parentNode.hidden=true;
       var nid=img.getAttribute('nid');
       document.getElementById('divNoneImg'+nid).style.display="block";
      }
     }
    }, 2000);
   });

 </script>



abin 2013-07-31 14:33 發表評論
]]>
js中控制checkbox的選擇以及table的顯示與隱藏http://www.aygfsteel.com/stevenjohn/archive/2012/08/30/386625.htmlabinabinThu, 30 Aug 2012 11:50:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2012/08/30/386625.htmlhttp://www.aygfsteel.com/stevenjohn/comments/386625.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2012/08/30/386625.html#Feedback2http://www.aygfsteel.com/stevenjohn/comments/commentRss/386625.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/386625.html<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript">
    function checkAll() {
        var m = document.getElementsByName("all")[0];
        var s = document.getElementsByName("check");

        if (m.checked) {

            for ( var i = 0; i < s.length; i++) {
                s[i].checked = true;
            }
        } else {
            for ( var i = 0; i < s.length; i++) {
                s[i].checked = false;
            }

        }
    }

    function checkEvery() {
        var m = document.getElementsByName("all")[0];
        var s = document.getElementsByName("check");

        for ( var i = 0; i < s.length; i++) {
            if (s[i].checked&&m.checked) {
                m.checked = true;
            } else {
                m.checked = false;
            }
        }

    }

    function turn() {
        with (document) {
            var m = getElementById("change");
            var n = getElementById("table");
            if (m.value == "收縮") {
                n.style.display = "none";
                m.value = "展開";
            } else {
                n.style.display = "block";
                m.value = "收縮";
            }
        }
    }
</script>
</head>
<body>
    <table border="1" align="center" width="60%" id="table1">
        <tr>
            <td><input type="checkbox" name="all" onclick="checkAll();">全選</td>
            <td><input type="button" value="收縮" id="change"
                onclick="turn();"></td>
        </tr>
    </table>
    <%
        int number = Integer.parseInt(request.getParameter("number"));
    %>

    <table border="1" align="center" width="60%" id="table">
        <%
            for (int i = 0; i < number; i++) {
        %>
        <tr>
            <td><input type="checkbox" name="check" onclick="checkEvery()"></td>
            <td><%=i%></td>
        </tr>
        <%
            }
        %>
    </table>
</body>
</html>

abin 2012-08-30 19:50 發表評論
]]>
js獲取復選框的值,及小技巧http://www.aygfsteel.com/stevenjohn/archive/2012/08/30/386616.htmlabinabinThu, 30 Aug 2012 09:45:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2012/08/30/386616.htmlhttp://www.aygfsteel.com/stevenjohn/comments/386616.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2012/08/30/386616.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/386616.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/386616.html<!-- 獲取復選框的值-->
<script language=javascript>
function c()
{
   var c=document.getElementsByName("aaa");//getElement s ByName忘掉了一直沒注意郁悶死
   for( var i=0;i<c.length;i++)
   {
    if(c[i].checked)
    {
     alert(c[i].value);
    }
   }
}
function d()
{
   var check=document.getElementsByName("aaa");
   for(i=0;i<check.length;i++)
   {
    //三元運算符,不知道為什么我用非(~)運算符,只能全選,只有選這個用了
    check[i].checked=check[i].checked?false:true;
   }
}
function e()
{
   var check=document.getElementsByName("aaa");
   for(i=0;i<check.length;i++)
   {
    check[i].checked=true;
   }
  
}
</script>

<input type="checkbox" name="aaa" value="1" />1
<input type="checkbox" name="aaa" value="2" />2
<input type="checkbox" name="aaa" value="3" />3
<input type="checkbox" name="aaa" value="4" />4
<input type="checkbox" name="aaa" value="5" />5
<input type="checkbox" name="aaa" value="6" />6
<input type="button" value="選中查看" onclick="c()"/>
<input type="button" value="反選" onclick="d()" />
<input type="button" value="全選" onclick="e()" />
<br />


如果需要將復選框選中的值操作,可在循環里面加字符串拼接,每個用逗號隔開,在js里頁面跳轉,憑借的字符串如果是數組,作為url傳遞的參數,接手后不是數組,是字符串形式的,只要用函數分割就ok了。



abin 2012-08-30 17:45 發表評論
]]>
javascript實現表格動態增加刪除(二)http://www.aygfsteel.com/stevenjohn/archive/2012/08/28/386474.htmlabinabinTue, 28 Aug 2012 15:55:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2012/08/28/386474.htmlhttp://www.aygfsteel.com/stevenjohn/comments/386474.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2012/08/28/386474.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/386474.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/386474.html<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>javascript實現表格動態增加刪除</title>

<script>
 function addline() {
  var table1=document.createElement("table");
  var row=table1.insertRow();
  var td1=row.insertCell();
  td1.innerHTML=document.getElementById("name1").value;
  var td2=row.insertCell();
  td2.innerHTML=document.getElementById("age1").value;
  var td3=row.insertCell();
  td3.innerHTML='<input type="button" value="刪除" onclick="deleteRow(this.parentElement)" />';
  
  document.getElementById("div1").appendChild(table1); 
  table1.setAttribute('border','1');
 }
 function deleteRow(obj) {
  obj.parentElement.removeChild(obj);
 }
</script>
<body>
 <div id="div1" style="">
 
 </div>
 <input type="text" name="name" id="name1" />
 <input type="text" name="age" id="age1" />
 <input type="button" value="PRESS" onclick="return addline();" />
</body>
</html>



abin 2012-08-28 23:55 發表評論
]]>
javascript實現表格動態增加http://www.aygfsteel.com/stevenjohn/archive/2012/08/28/386472.htmlabinabinTue, 28 Aug 2012 15:24:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2012/08/28/386472.htmlhttp://www.aygfsteel.com/stevenjohn/comments/386472.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2012/08/28/386472.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/386472.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/386472.html<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>javascript實現表格動態增加</title>

<script>
 function addline() {
  var table1=document.getElementById("tb1");
  var row1=document.createElement("tr");
  var td1=document.createElement("td");
  var td2=document.createElement("td");
  var td3=document.createElement("td");
  var id1=document.getElementById("id1").value;
  var name1=document.getElementById("name1").value;
  var age1=document.getElementById("age1").value;
  var txt1=document.createTextNode(id1);
  var txt2=document.createTextNode(name1);
  var txt3=document.createTextNode(age1);
  td1.appendChild(txt1);
  td2.appendChild(txt2);
  td3.appendChild(txt3);
  row1.appendChild(td1);
  row1.appendChild(td2);
  row1.appendChild(td3);
  table1.appendChild(row1);
 }
 
</script>
<body id="bd">
 <table id="tb1" border="1">
  <tr>
   <td>ID</td>
   <td>NAME</td>
   <td>AGE</td>
  </tr>
 </table>
 <input type="text" id="id1" />
 <input type="text" id="name1" />
 <input type="text" id="age1" />
 <br/>
 <input type="button" value="PRESS" onclick="return addline();"/>
</body>
</html>



abin 2012-08-28 23:24 發表評論
]]>
javascript實現表格動態增加刪除(一)http://www.aygfsteel.com/stevenjohn/archive/2012/08/28/386471.htmlabinabinTue, 28 Aug 2012 15:21:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2012/08/28/386471.htmlhttp://www.aygfsteel.com/stevenjohn/comments/386471.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2012/08/28/386471.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/386471.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/386471.html<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>javascript實現表格動態增加刪除</title>

<script>
 function addline() {
  var tb = document.getElementById("mytable");
  var row = tb.insertRow(tb.rows.length);
  var colname = row.insertCell(row.cells.length);
  var colage = row.insertCell(row.cells.length);
  var colbutton = row.insertCell(row.cells.length);

  colname.innerHTML = document.getElementById("name1").value;
  colage.innerHTML = document.getElementById("age1").value;
  colbutton.innerHTML = '<input type="button" value="刪除" onclick="deleteRow('
    + (tb.rows.length - 1) + ')" />'
 }
 function deleteRow(index) {
  var tb = document.getElementById("mytable");
  tb.deleteRow(index);
 }
</script>
<body>
 <table id="mytable" border="1">
  <tr>
   <td>NAME</td>
   <td>AGE</td>
   <td>OPERATE</td>
  </tr>
 </table>
 <input type="text" name="name" id="name1" />
 <input type="text" name="age" id="age1" />
 <input type="button" value="PRESS" onclick="return addline();" />
</body>
</html>



abin 2012-08-28 23:21 發表評論
]]>
js動態創建,刪除表格 http://www.aygfsteel.com/stevenjohn/archive/2012/08/28/386459.htmlabinabinTue, 28 Aug 2012 13:20:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2012/08/28/386459.htmlhttp://www.aygfsteel.com/stevenjohn/comments/386459.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2012/08/28/386459.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/386459.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/386459.html生成一個2000*5的表格,每個單元格的內容是行號+逗號+列號

方法一:使用createElement生成表格,使用insertRow和insertCell方法生成行列,單元格的內容使用innerHTML屬性進行填充。

方法二:使用createElement生成表格,使用CreateElement方法生成行列,單元格的內容使用了createTextNode方法填充。

方法三:拼接表格innerHTML屬性的字符串,使用字符串 += 操作符鏈接字符串

方法四:拼接表格innerHTML屬性的字符串,各個字符串追加數組里面,最后調用數組的join方法生成目標字符串。

運行時間比較:

方法 運行時間(ms)
方法一 93037
方法二 3341
方法三 2795
方法四 500

具體的程序如下:


<html>
  <head>
   <title>test page</title>
   <script type='text/javascript'>
     <!--
   function createTable() {
       var t = document.createElement('table');
       for (var i = 0; i < 2000; i++) {
        var r = t.insertRow();
        for (var j = 0; j < 5; j++) {
         var c = r.insertCell();
         c.innerHTML = i + ',' + j;
        }
       }
      
       document.getElementById('table1').appendChild(t);
      t.setAttribute('border', '1');
   }
   
   function createTable2() {
       var t = document.createElement('table');
       var b = document.createElement('tbody');
       for (var i = 0; i < 2000; i++) {
        var r = document.createElement('tr');
        for (var j = 0; j < 5; j++) {
         var c = document.createElement('td');
         var m = document.createTextNode(i + ',' + j);
         c.appendChild(m);
         r.appendChild(c);
        }
        b.appendChild(r);
       }
      
       t.appendChild(b);
       document.getElementById('table1').appendChild(t);
      t.setAttribute('border', '1');
   }
   
   function createTable3() {
    var data = '';
    
    data += '<table border=1><tbody>';
       for (var i = 0; i < 2000; i++) {
        data += '<tr>';
        for (var j = 0; j < 5; j++) {
         data += '<td>' + i + ',' + j + '</td>';
        }
        data += '</tr>';
       }
       data += '</tbody><table>';
      
       document.getElementById('table1').innerHTML = data;
   }

   function createTable4() {
    var data = new Array();
    
    data.push('<table border=1><tbody>');
       for (var i = 0; i < 2000; i++) {
        data.push('<tr>');
        for (var j = 0; j < 5; j++) {
         data.push('<td>' + i + ',' + j + '</td>');
        }
        data.push('</tr>');
       }
       data.push('</tbody><table>');
      
       document.getElementById('table1').innerHTML = data.join('');
   }

   function showFunctionRunTime(f) {
    var t1 = new Date();
    f();
    var t2 = new Date();
    alert(t2 - t1);
   }
     //-->
   </script>
  </head>
 <body>
  <div id="table1" style="border: 1px solid black">
  </div>

  <script>
   showFunctionRunTime(createTable);
   showFunctionRunTime(createTable2);
   showFunctionRunTime(createTable3);
   showFunctionRunTime(createTable4);
  </script>
 </body>
</html>

原文出處:http://abaper.blogbus.com/logs/8278500.html



動態刪除表格  

  方法1: 
  <table   id=mxh   border=1>  
  <tr>  
  <td>第1行</td><td   onclick="deleteRow('mxh',this.parentElement.rowIndex)">刪除本行</td>  
  </tr>  
  <tr>  
  <td>第2行</td><td   onclick="deleteRow('mxh',this.parentElement.rowIndex)">刪除本行</td>  
  </tr>

  </table> 

<script>  
  function   deleteRow   (tableID,   rowIndex)   {  
      var   table   =document.all[tableID]  
      table.deleteRow(rowIndex);  
  }    
  </script>

方法2:

<table   id=mxh   border=1>  
  <tr>  
  <td>第1行</td><td   onclick="deleteRow(this.parentElement)">刪除本行</td>  
  </tr>  
  <tr>  
  <td>第2行</td><td   onclick="deleteRow(this.parentElement)">刪除本行</td>  
  </tr>

  </table> 

<script>  
  function   deleteRow   (obj)   {   

      obj.parentElement.removeChild(obj);  
  }    
  </script>

分享到:



abin 2012-08-28 21:20 發表評論
]]>
dwr3實現消息精確推送詳細步驟 http://www.aygfsteel.com/stevenjohn/archive/2012/07/07/382447.htmlabinabinSat, 07 Jul 2012 07:10:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2012/07/07/382447.htmlhttp://www.aygfsteel.com/stevenjohn/comments/382447.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2012/07/07/382447.html#Feedback12http://www.aygfsteel.com/stevenjohn/comments/commentRss/382447.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/382447.html    這幾天做項目,需要一個消息提醒功能,決定用dwr實現,在dwr官網和網上找了很多資料,也沒實現精準推送,大多數的例子具體步驟寫的不清楚,不怎么了解dwr的人看了也未必能看懂,反正我是沒看懂,那時就決定,若自己實現了,一定將具體步驟寫下來,希望能給那些和我一樣的人一些幫助,若有不明白的,可以給小弟留言。我只寫步驟,不寫原理,下面開始。

     第一、在項目中引入dwr.jar,然后在web.xml中進行配置,配置如下:

     <servlet>

        <servlet-name>dwr-invoker</servlet-name>

        <servlet-class>

            org.directwebremoting.servlet.DwrServlet

        </servlet-class>

        <init-param>

            <param-name>crossDomainSessionSecurity</param-name>

               <param-value>false</param-value>

            </init-param>

        <init-param>

          <param-name>allowScriptTagRemoting</param-name>

          <param-value>true</param-value>

        </init-param>

        <init-param>

          <param-name>classes</param-name>

          <param-value>java.lang.Object</param-value>

        </init-param>

        <init-param>

            <param-name>activeReverseAjaxEnabled</param-name>

            <param-value>true</param-value>

        </init-param>

        <init-param>

           <param-name>initApplicationScopeCreatorsAtStartup</param-name>

           <param-value>true</param-value>

        </init-param>

        <init-param>

            <param-name>maxWaitAfterWrite</param-name>

            <param-value>3000</param-value>

        </init-param>

        <init-param>

            <param-name>debug</param-name>

            <param-value>true</param-value>

        </init-param>

        <init-param>

            <param-name>logLevel</param-name>

            <param-value>WARN</param-value>

        </init-param>

    </servlet>

    第二:在web.xml的同級目錄下新建dwr.xml文件,內容如下

     <!DOCTYPE dwr PUBLIC

          "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"

          "http://getahead.org/dwr/dwr30.dtd">

     <dwr>

          <alow>

               <create creator="new" javascript="MessagePush">

                 <param name="class" value="com.huatech.messageremind.service.MessagePush"/>

              </create>

          </alow>

     </dwr>

    這個是dwr的基本配置,MessagePush在頁面的javascript中使用,com.huatech.messageremind.service.MessagePush實現了想要調用的方法,MessagePush我覺得就相當于java類中的一個映射,在javascript中使用MessagePush.java類中實現的方法,即可在dwr中調用。

    第三,要想使用dwr,還要在你想要推送的頁面中引入script

          <script type="text/javascript" src="<%=basepath%>dwr/engine.js"></script>

        <script type="text/javascript" src="<%=basepath%>dwr/util.js"></script>

        <script type="text/javascript" src="<%=basepath%>dwr/interface/MessagePush.js"></script>

          可以看見,也引入了dwr.xml中配置的javascriptengine.jsutil.js是必須引入的。

 以上三點都是基本配置,沒什么好說的,想使用dwr,就得這么做。

   第四,實現消息的精準推送

        消息推送簡單,但是想實現精準推送就需要做一些別的操作了

        1 在任何一個用戶登錄的時候,都需要將其userId或者其他唯一性標識放入session中,我放的是userId

          這里就以 userId為唯一性標識。

        2 在載入想推送的頁面時,需要onload一個我在MessagePush類中實現的方法,當然了,需要使用dwr調用

          js的調用方法如下:

           function onPageLoad(){

             var userId = '${userinfo.humanid}';

             MessagePush.onPageLoad(userId);

          }

            <body onload="dwr.engine.setActiveReverseAjax(true);dwr.engine.setNotifyServerOnPageUnload(true);onPageLoad();> onload中的三個函數都是必須的,其中dwr.engine.setActiveReverseAjax(true);dwr.engine.setNotifyServerOnPageUnload(true);dwr中的函數。

           MessagePush類中實現的方法如下:

           public void onPageLoad(String userId) {

              ScriptSession scriptSession = WebContextFactory.get().getScriptSession();

              scriptSession.setAttribute(userId, userId);

              DwrScriptSessionManagerUtil dwrScriptSessionManagerUtil = new DwrScriptSessionManagerUtil();

              try {

                     dwrScriptSessionManagerUtil.init();

              } catch (ServletException e) {

                     e.printStackTrace();

              }

       }

         大家注意到,onPageLoad方法中還有一個名為DwrScriptSessionManagerUtil的類,該類如下實現:

         public class DwrScriptSessionManagerUtil extends DwrServlet{

       private static final long serialVersionUID = -7504612622407420071L;

 

       public void init()

       throws ServletException {

 

 

              Container container = ServerContextFactory.get().getContainer();

 

              ScriptSessionManager manager = container

                            .getBean(ScriptSessionManager.class);

 

              ScriptSessionListener listener = new ScriptSessionListener() {

 

                     public void sessionCreated(ScriptSessionEvent ev) {

 

                            HttpSession session = WebContextFactory.get().getSession();

 

                            String userId =((User) session.getAttribute("userinfo")).getHumanid()+"";

                            System.out.println("a ScriptSession is created!");

                            ev.getSession().setAttribute("userId", userId);

 

                     }

 

                     public void sessionDestroyed(ScriptSessionEvent ev) {

                            System.out.println("a ScriptSession is distroyed");

                     }

 

              };

 

              manager.addScriptSessionListener(listener);

 

       }

 

}

第四步是最最重要的,為了第四步我研究了兩天多,下面開始消息推送。

      第五、消息推送

            在你想要推送消息的時候,調用如下方法:

             public void sendMessageAuto(String userid,String message) {

              final String userId = userid ;

              final String autoMessage = message;

              Browser.withAllSessionsFiltered(new ScriptSessionFilter() {

                     public boolean match(ScriptSession session) {

                            if (session.getAttribute("userId") == null)

                                   return false;

                            else

                                   return (session.getAttribute("userId")).equals(userId);

                     }

              }, new Runnable(){

                     private ScriptBuffer script = new ScriptBuffer();

                     public void run() {

                            script.appendCall("showMessage", autoMessage);

                            Collection<ScriptSession> sessions = Browser

                            .getTargetSessions();

                            for (ScriptSession scriptSession : sessions) {

                                   scriptSession.addScript(script);

                            }

                     }

                    

              });

       }

         userid即為你想推給消息的人,message為你想推送的消息,大家注意到這里script.appendCall("showMessage", autoMessage);

         其中showMessage為在想推送的頁面中的javascript方法,autoMessage是這個方法的參數,這樣那個頁面就能得到推送的內容了,至于如何展現,就看你的需要了。

 

        至此,一個dwr消息精準推送的步驟就寫完了,其實很多東西都不難,只是我們不知道該怎么用而已。



abin 2012-07-07 15:10 發表評論
]]>
js實現checkbox全選,反選,全不選http://www.aygfsteel.com/stevenjohn/archive/2012/07/07/382435.htmlabinabinSat, 07 Jul 2012 04:45:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2012/07/07/382435.htmlhttp://www.aygfsteel.com/stevenjohn/comments/382435.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2012/07/07/382435.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/382435.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/382435.html

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>js實現checkbox全選,反選,全不選</title>
</head>
<script type="text/javascript" src="js/jquery-1.6.4.js"></script>
<script type="text/javascript">
    //復選框全選
    function checkAll(formvalue) {
        var roomids = document.getElementsByName(formvalue);
        for ( var j = 0; j < roomids.length; j++) {
            if (roomids.item(j).checked == false) {
                roomids.item(j).checked = true;
            }
        }
    }

    //復選框全不選
    function uncheckAll(formvalue) {
        var roomids = document.getElementsByName(formvalue);
        for ( var j = 0; j < roomids.length; j++) {
            if (roomids.item(j).checked == true) {
                roomids.item(j).checked = false;
            }
        }
    }

    //復選框選擇轉換
    function switchAll(formvalue) {
        var roomids = document.getElementsByName(formvalue);
        for ( var j = 0; j < roomids.length; j++) {
            roomids.item(j).checked = !roomids.item(j).checked;
        }
    }
</script>
</head>
<body>
    <input type="radio" name="all" id="all" onclick="checkAll('test')" />
    全選
    <input type="radio" name="all" id="Checkbox1"
        onclick="uncheckAll('test')" /> 全不選
    <input type="radio" name="all" id="Checkbox2"
        onclick="switchAll('test')" /> 反選
    <br />
        <input name="test" value="復選框1" type="checkbox" /> 復選框1 <br />
        <input name="test" value="復選框2" type="checkbox" /> 復選框2 <br />
        <input name="test" value="復選框3" type="checkbox" /> 復選框3 <br />
        <input name="test" value="復選框4" type="checkbox" /> 復選框4 <br />
        <input name="test" value="復選框5" type="checkbox" /> 復選框5 <br />
        <input name="test" value="復選框6" type="checkbox" /> 復選框6 <br />
</body>
</html>



abin 2012-07-07 12:45 發表評論
]]>
提交checkbox的值到servlethttp://www.aygfsteel.com/stevenjohn/archive/2012/07/07/382434.htmlabinabinSat, 07 Jul 2012 04:44:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2012/07/07/382434.htmlhttp://www.aygfsteel.com/stevenjohn/comments/382434.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2012/07/07/382434.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/382434.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/382434.html

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>js test</title>
</head>
<script type="text/javascript" src="js/jquery-1.6.4.js"></script>
<script type="text/javascript">
function selectAll(){
    var name=document.getElementsByName('checkbox');
    for(var i=0;i<name.length;i++){
        if(name.item(i).checked==false)
            name.item(i).checked=true;
    }
}
</script>
<body>
    <form name="myForm" method="post" action="CheckValue">
    全選:<input type="radio" name="all" id="all"  onclick="selectAll('checkebox')" /><br/>
    表單名稱1: <input type="checkbox" name="checkbox" value="checkbox1" /><br/>
    表單名稱2: <input type="checkbox" name="checkbox" value="checkbox2" /><br/>
    表單名稱3: <input type="checkbox" name="checkbox" value="checkbox3" /><br/>
    表單名稱4: <input type="checkbox" name="checkbox" value="checkbox4" /><br/>
    表單名稱5: <input type="checkbox" name="checkbox" value="checkbox5" /><br/>
    表單名稱6: <input type="checkbox" name="checkbox" value="checkbox6" /><br/>
    <input type="submit" value="提交"/>
    </form>


</body>
</html>

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>abs</display-name>
 
  <servlet>
      <servlet-name>CheckValue</servlet-name>
      <servlet-class>org.abin.lee.servlet.CheckValue</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>CheckValue</servlet-name>
      <url-pattern>/CheckValue</url-pattern>
  </servlet-mapping>
 
 
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

 

 

 

package org.abin.lee.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CheckValue extends HttpServlet{
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        String[] value=req.getParameterValues("checkbox");
        for(int i=0;i<value.length;i++){
            System.out.println("第"+i+"個:"+value[i]);
        }
        
    }
}



abin 2012-07-07 12:44 發表評論
]]>
checkbox實現全選的多種方法http://www.aygfsteel.com/stevenjohn/archive/2012/07/07/382433.htmlabinabinSat, 07 Jul 2012 04:41:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2012/07/07/382433.htmlhttp://www.aygfsteel.com/stevenjohn/comments/382433.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2012/07/07/382433.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/382433.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/382433.html
<script language=javascript>
//第一種方法
function selectall1()
{
var a = document.getElementsByTagName("input");
if(a[0].checked==true){
for (var i=0; i<a.length; i++)
if (a[i].type == "checkbox") a[i].checked = false;
}
else
{
for (var i=0; i<a.length; i++)
if (a[i].type == "checkbox") a[i].checked = true;
}
}

//第二種方法

function selectall2() {
var tform = document.forms['form1'];
for (var i=0;i<tform.length;i++)
{
var e = tform.elements[i];
if (e.type == "checkbox")
e.checked = !e.checked;
}
}

//第三種方法,結合上述兩種方法
function selectall3()
{
var a = document.getElementsByTagName("input");
for (var i=0; i<a.length; i++)
if (a[i].type == "checkbox") a[i].checked =!a[i].checked;
}
//第四種方法
function selectall4(id){ //用id區分
var tform=document.forms['form1'];
for(var i=0;i<tform.length;i++){
var e=tform.elements[i];
if(e.type=="checkbox" && e.name==id) e.checked=!e.checked;
}
}
//第五種方法
function selectall(theform,thename){ //theform指定的form,thename是checkbox的name屬性
var tform=document.forms[theform];
document.getElementById("thewen").value='反選';
for(var i=0;i<tform.length;i++){
var e=tform.elements[i];
if(e.type=='checkbox' && e.name==thename)e.checked=!e.checked;
}
}
</script>
<form id="form1" name="form1" method="post" action="">
<input type="checkbox" name="sid" value="1" />
<input name="thes" type="button" onclick="javascript:selectall3()" value="全選" />
</form>

abin 2012-07-07 12:41 發表評論
]]>
主站蜘蛛池模板: 赤峰市| 绿春县| 乌拉特前旗| 凤凰县| 盐城市| 固阳县| 水富县| 蒙阴县| 元谋县| 阿克| 蛟河市| 荆门市| 榆中县| 伊春市| 枞阳县| 汝州市| 青岛市| 社旗县| 肥东县| 蒙阴县| 通榆县| 安溪县| 仪征市| 手机| 湖南省| 右玉县| 景谷| 汕头市| 京山县| 恭城| 五莲县| 门源| 平潭县| 隆安县| 司法| 富宁县| 苗栗县| 彩票| 西城区| 临澧县| 辰溪县|