posts - 165, comments - 198, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          2008年9月24日


          學習就從官方的測試開始,但不知道怎么回事官方的測試有問題,這我就把我配置的簡單junit環境共享給大家把!
          1.下載 hibernate-annotations-3.4.0.GA 并解壓 ,cd 到解壓后目錄下
          2. $>ant junit (天知道,怎么官方出的東西測試不能通過!!)
          ?? 不要急,我們來看錯誤 (錯誤提示有刪減)
          ???? 錯誤-1:$>build.xml:95: ./jdbc not found.
          ???? 解決辦法-1: $>mkdir ./jdbc
          3.? $>ant junit
          ???? 錯誤-2:?
          ????? ./build.xml:124: The following error occurred while executing this line:
          ????? ./build.xml:126: The following error occurred while executing this line:
          ????? ./common-build.xml:349: .\src\filters\hsqldb.filter as it doesn't exist.
          ???? 解決辦法-2:
          ?????? $>mkdir? ./src/filters ;
          ?????? $>echo "" > ./src/filters/hsqldb.filter;
          4. ? $>ant junit
          ???? 錯誤-3:
          ?????? ./build.xml:124: The following error occurred while executing this line:
          ?????? ./build.xml:126: The following error occurred while executing this line:
          ?????? ./common-build.xml:351: .\src\test-resources not found.
          ????? $>mkdir? ./src/test-resources ;
          5. ? $>ant junit
          ???? 錯誤-4:沒有ant 錯誤了!,但測試都為錯誤,那我們就看看 第一個測試吧,找下原因!
          ???????? test-resources:
          ????????? [mkdir] Created dir: hibernate-anntations-3.4.0.GA\build\test-reports\hsqldb
          ????????? [echo] Running against db: hsqldb
          ????????? [junit] Running org.hibernate.test.annotations.ConfigurationTest
          ????????? [junit] Tests run: 7, Failures: 0, Errors: 6, Time elapsed: 1.218 sec
          ????????? .............
          ???? $>find . -name "ConfigurationTest.java"? #pwd /hibernate-anntations-3.4.0.GA
          ??????? ./test/org/hibernate/test/annotations/configuration/ConfigurationTest.java
          ??????? ./test/org/hibernate/test/annotations/ConfigurationTest.java
          ????? 根據路徑 org.hibernate.test.annotations.ConfigurationTest
          ????? gvim? ./test/org/hibernate/test/annotations/ConfigurationTest.java
          ????? 發現第20行: cfg.configure( "org/hibernate/test/annotations/hibernate.cfg.xml" );
          ????? 感覺應該沒有配置 jdbc
          ????? gvim ./test/org/hibernate/test/annotations/hibernate.cfg.xml? #果然 沒配置
          ????? 我這就放個我的簡單配置上來(使用 hbm hsqldb 內存數據庫測 試 ):
          <!DOCTYPE?hibernate-configuration?PUBLIC
          ????????"-//Hibernate/Hibernate?Configuration?DTD?3.0//EN"
          ????????"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
          >
          <hibernate-configuration>
          ??
          <session-factory>
          ????????
          <property?name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
          ????????
          <property?name="connection.driver_class">org.hsqldb.jdbcDriver</property>
          ????????
          <property?name="connection.url">jdbc:hsqldb:mem:hbn_ann</property>
          ????????
          <property?name="connection.username">sa</property>
          ????????
          <property?name="connection.password"></property>
          ???
          ????????
          <mapping?resource="org/hibernate/test/annotations/Boat.hbm.xml"/>
          ????????
          <mapping?package="org.hibernate.test.annotations"/>
          ????????
          <mapping?class="org.hibernate.test.annotations.Plane"/>
          ??
          </session-factory>
          </hibernate-configuration>


          ????? 我這就是要hsqldb吧,既然上面錯誤1有 jdbc 文件夾,那就是放 jdbc jar 的地方
          ????? $> cp ../hsqldb.jar? ./jdbc
          ???
          6. ? $>ant junit
          ???? 呵呵 測試 第一個正確了 ! (目前配置后,測試環境并不是全部都正確,比如第2個測試)
          ???? 其他測試錯誤日志在??? .\build\test-reports\hsqldb ...
          ???? 比如第2個錯誤 異常部分
          ????? org.hibernate.HibernateException: The dialect was not set. Set the property hibernate.dialect.
          ??? at org.hibernate.dialect.Dialect.instantiateDialect(Dialect.java:256)
          ??? at org.hibernate.dialect.Dialect.getDialect(Dialect.java:234)
          ??????? ........ 大家一邊學習,一邊配置測試 環境吧。
          ??? 錯誤日記 都會在 build\test-reports\hsqldb下

          posted @ 2009-04-14 11:30 G_G 閱讀(1676) | 評論 (0)編輯 收藏


          參考:
          http://tech.ddvip.com/2008-12/122835390597191.html


          頁面可以直接運行:
          <html>
          <head>

          <style?type="text/css">

          .box1
          {
          float
          :left;
          width
          :21px;
          height
          :21px;
          position
          :relative;
          background
          :?#F3F2E2?url(http://mp3.youdao.com/images/mbox_bg.gif)?no-repeat;
          }
          .box1?
          {
          background-position
          :?0px?-60px;
          }


          </style>

          </head>

          <body>

          ????
          <div?class="box1"?
          ????????onmouseover
          ="this.style.backgroundPosition='0px?-81px'?"?
          ????????onmouseout
          ="this.style.backgroundPosition='0px?-102px'?"????
          ????
          >
          ????
          </div>

          </body>

          </html>

          posted @ 2009-02-24 16:46 G_G 閱讀(1995) | 評論 (0)編輯 收藏

          javascript 學習
          ?? ? ? javascript 大體上可分為3個不同部分組成: 核心(ECMAscript),文本對象(DOM),瀏覽器對象(BOM)
            1. ?核心(ECMAscript): 關鍵字,語句,運算符,對象
            2. 文本對象(DOM):DOM將把整個頁面規劃成由節點層級構成的文檔.
              1. 解析遵循 W3C html dom 標準
              2. ? W3C dom 參考特別關注 DOM Node 說明???
            3. BOM 瀏覽器對象.? cookie,彈出新瀏覽器,瀏覽器設置大小
          ?
          核心(ECMAscript)Global 內置對象;
          ????? 方法: parseInt(),isNan(),encodeURI()...等都為此對象方法
          ????? 特別注意 eval();動態語言的象征 比如:eval("alert('hi')"); 但這個方法很邪惡(安全方面)
          文本對象(DOM)說明:
          ?? ??? ?
          <bookstore>
          <book category="cooking">
          <title lang="en">Everyday Italian</title>
          <author>Giada De Laurentiis</author>
          <year>2005</year>
          <price>30.00</price>
          </book>
          </bookstore>

          DOM node tree

          Node tree

          ?? ??? ??? ???


          ??? ?

          ? 1. ECMAscript基礎

          ?????? $ 變量弱類型 ; ??? 匈牙利類型標示 : var iOuouValue=100;?

          ?????? $ 結束行分號有無都可以; ??? 但再 onsubmit="javascript:function();return false;"

          ?????? $ 關鍵字 ; 提別注意

          ??????????????? "constructor" bean.constructor

          ???????????????????? //print bean function(){

          ????????????????????????? ....

          ????????????????????? }

          ??????????????? "typeof" ? var test=1; alert(typeof testX); //output "undefined"

          ??????????????? "NaN" - not a number ->? isNan("blue"); //output "true" ? ->isNan("123"); //output "false"?

          ?????? $ 對象; var o = new Object(); var a = {}?

          ?? ??? ??? ??? ?這里特別說明下 我們普通寫的 一個 function 就是一個 object?

          ?? ??? ??? ?? 這?? var a = {name:"劉凱毅"} 等同與 var a = function(){this.name="劉凱毅"};

          ?? ??? ??? ??? ???? 來個 {name:"test",pass:"123456",addr:"bj"} //這是什么 ?! json

          ?? ??? ??? ???????? 當 var str = '{name:"test",pass:"123456",addr:"bj"}'

          ?? ??? ??? ??? ???? var objectBean = eval(str); //這里就是 對象 objectBea.name 使用了

          ? 域概念:

          <SCRIPT type=text/javascript>
          var sMessage = 'Hello';
          function setSomething() {
          ? sColor = 'red';
          ? sMessage = 'Hello World!';
          }
          setSomething();
          alert(sMessage); //Hello World!
          alert(sColor); //red
          </SCRIPT>
          <SCRIPT type=text/javascript>
          var sMessage = 'Hello';
          function setSomething() {
          ? var sColor = 'red';
          ? sMessage = 'Hello World!';
          }
          setSomething();
          alert(sMessage); //Hello World!
          alert(sColor); // 什么都沒有
          </SCRIPT>

          <SCRIPT type=text/javascript>
          var sMessage = 'Hello';
          function setSomething() {
          ? var sColor = 'red';
          ? var sMessage = 'Hello World!';
          }
          setSomething();
          alert(sMessage); //Hello
          alert(sColor); // 什么都沒有
          </SCRIPT>

          ??????????

          為面向對象做基礎:object prototype 類型的對象應用。參考

          // 最簡單的 繼承
          Object.prototype.inObj?=?1;

          function?A()
          {
          ????this.inA?=?2;
          }
          ?
          A.prototype.inAProto?=?3;
          ?
          B.prototype?=?new?A;????????????//?Hook?up?A?into?B's?prototype?chain
          B.prototype.constructor?=?B;
          function?B()
          {
          ????this.inB?=?4;
          }
          ?
          B.prototype.inBProto?=?5;
          ?
          x?=?new?B;
          document.write(x.inObj?+?',?'?+?x.inA?+?',?'?+?x.inAProto?+?',?'?+?x.inB?+?',?'?+?x.inBProto);

          //1, 2, 3, 4, 5
          //增加點信心 http://www.json.org/json.js
          Object.prototype.toJSONString = function (filter) {
          return JSON.stringify(this, filter);
          };
          后我們就可以使用 bean.toJSONString()不是嗎?

          ??? $ arguments ;

          ???????? function getFun(){alert(arguments.length);}?? ;

          ?

          ?? ??? ??? ??? ?getFun("xx") //output 1

          ?? ??? ??? ??? ?getFun("xx",23) //output 2



          ?? $ 語句 ;特殊說明下 for?

          ?????????? for(var i=0i<iCount;i++)?? 或 for( attr in object ) ;

          ?????????? 如果無聊 你可以 for( sProp in window ){alert(sProp+"你丫點啊!");} //看看 javascript 的反射

          ??????????????

          ? ? ? ? ? ? ? ??

          ???


          面向對象:

          ? var bean = new Bean();

          ??

          ? 1.工廠方法

          ??????? ??? function getAttr(){

          ???? ?? ??? ???? alert(this.attr)

          ??????????? }

          ??????????? function Bean(tattr){

          ?? ??? ??? ???? var bean = new Object;

          ?? ??? ??? ?????bean.attr = tattr;

          ?? ??? ??? ?????bean.getAttr = getAttr;

          ?? ??? ??? ???? return bean ;

          ??????????? }

          ?? ???? 根本就是山寨版 面向對象

          ? 2.構造

          ????? ??? function Bean(tattr){

          ?? ??? ?????? this.attr = tattr ;

          ?? ??? ??? ?? bean.getAttr = function(){

          ?? ??? ??? ?????alert(this.attr);

          ?? ??? ??? ? ?} ? ?

          ?? ??? ???}

          ?? 其上 2 總 再Bean 對象創建時,方法會 “重復生成函數”!


          ? 3.原型模式

          ??? function Bean(){}

          ??? Bean.prototype.attr = "";

          ??? Bean.prototype.getAttr=function(){alert(this.attr);}

          ?? ?

          ?? 解決 “重復生成函數” 問題,但新的問題 Bean.prototype.getArray = new Array();


          ?? 其 new 對象 bean1 和 bean2 都會共享 new Array 空間(是我們不想看到的)


          ? 4.混合 模型 :)? 哈哈

          ???? function Bean(){

          ?? ??? ?this.attr= "";

          ?? ??? ?this.getArray=new Array;

          ?? ?}

          ?? ?Bean.prototype.getAttr=function(){alert(this.attr);}

          ?

          ? 5.動態原型 (注意下面開始,就是真正的面向對象!!!)

          ?? ??? function Bean(){

          ?? ???? this.attr= "";
          ?? ??? ?this.getArray=new Array;

          ?? ???? //classload 加載 時

          ?? ???? if(typeof Bean._initialized == "undefined" ){

          ?? ??? ???? Bean.prototype.getAttr=function(){alert(this.attr);};

          ?? ???? ??? Bean._initialized= true ;

          ?? ??? ?}

          ???? }

          ???

          /****************************************************************/

          對象繼承

          ? 1.對象冒充!!(可支持多繼承,山寨很強大)

          ????? function classA(sstr){

          ?? ???? this.color = sstr ;

          ?? ???? this.sayColor = function(){

          ?? ??? ???? alert(this.color);

          ?? ??? ?};

          ?? ???}

          ?? ?? function classC(){}

          ?? ??? function classB(){

          ?? ??? ???? this.newMethod =ClassA ;

          ?? ??? ???? this.newMethod();

          ?? ??? ???? delete this.newMethod ;


          ?? ??? ???? this.newMethod =ClassC ;

          ?? ??? ???? this.newMethod();

          ?? ??? ???? delete this.newMethod ;

          ?? ??? ????

          ?? ??? ???? this.arrt = "google";

          ?? ??? ?}

          ?? ?

          ? 2.call() apply() 也山寨,

          ????? function classA(sstr){

          ?? ???? this.color = sstr ;

          ?? ???? this.sayColor = function(str){

          ?? ??? ???? alert(str+this.color);

          ?? ??? ?};

          ?? ???}

          ?? ??? function classB(){

          ?? ??? ??? // this.newMethod =ClassA ;

          ?? ??? ??? // this.newMethod();

          ?? ??? ??? // delete this.newMethod ;

          ?? ??? ???? classA.call(this,"red");

          ?? ??? ???? //classA.apply(this,new Array("red"))

          ?? ??? ???? this.arrt = "baidu";

          ?? ??? }


          3.正統的繼承 原型鏈 (但不支持多繼承)
          ??? function classA(){this.oo="test";}
          ??? classA.prototype.color = "red";
          ??? function classB(){}
          ??? classB.prototype = new classA ;
          ??? classB.prototype.sayName = function(){
          ?? ???? alert( this.color );
          ?? ?}
          ?? ?
          var bb = new classB ;
          ?? ?bb.sayName();
          // output red
          ?? ?
          alert(bb.oo); // output test

          ?? ?alert( bb instanceof classA); //output true
          ?? ?alert( bb instanceof classB); //output? true

          4.如果你要多繼承!!并且還支持 instanceof
          ?? ???? 混合方式:
          ?? ???? function classA(){}
          ?? ???? function classB(){}
          ?? ???? function classC(){
          ?? ??? ???? classA.call(this);
          ?? ??? ???? classC.call(this);
          ?? ??? ?}
          ?? ???? classC.prototype = new classA ;//注意 這
          instanceof 只能對 A有用

          ?? ??? ?






          ???

          posted @ 2009-02-12 11:56 G_G 閱讀(1842) | 評論 (2)編輯 收藏



          下載:flash-plugin-10.0.15.3-release.i386.rpm

          ?rpm -ivh flash-plugin-10.0.15.3-release.i386.rpm

          posted @ 2009-01-12 23:39 G_G 閱讀(747) | 評論 (0)編輯 收藏


          tomcat > server.xml

          ????? <Host name="localhost" appBase="webapps"
          ?????? unpackWARs="true" autoDeploy="true"
          ?????? xmlValidation="false" xmlNamespaceAware="false">

          ? <Context docBase="D:/workspace/meganotes/mn_mod_admin/target/mn_mod_admin/" path="/"? />

          。。。。


          關鍵:在Context上不要加reloadable和debug屬性
          ?然后 使用eclipse tomcat 調試
          ok

          posted @ 2008-12-26 17:52 G_G 閱讀(536) | 評論 (0)編輯 收藏


          <? xml?version="1.0"?encoding="UTF-8" ?>
          < project? name ="ssh" >
          ????
          < property? file ="ssh.properties" ? />
          ????
          < tstamp >
          ????????
          < format? property ="TODAY" ?pattern ="yyyyMMddHHmm" ? />
          ????
          </ tstamp >
          ????
          < property? name ="ssh.path" ?value ="/data/meganotes/shell/" ? />


          ????
          < target? name ="shell/?文件?上載/覆蓋" >
          ????????
          < input? addproperty ="scp_coverage_shell_file"
          ????????????message
          ="輸入(ssh/?下文件名?\n\r?上載或覆蓋?到服務器?218?${ssh.path}?):" >
          ????????
          </ input >
          ????????
          < input
          ????????????
          message ="請確定是否使用?ssh/${scp_coverage_shell_file}?覆蓋服務器中?${ssh.host}:${ssh.path}${scp_coverage_shell_file}?(y,n)"
          ????????????validargs
          ="y,n" ?addproperty ="do.coverage" ?defaultvalue ="n" ? />
          ????????
          < condition? property ="do.abort" >
          ????????????
          < equals? arg1 ="n" ?arg2 ="${do.coverage}" ? />
          ????????
          </ condition >
          ????????
          < fail? if ="do.abort" > 退出 </ fail >

          ????????
          < sshexec? host ="${ssh.host}" ?username ="${ssh.myName}"
          ????????????password
          ="${ssh.myPass}" ?trust ="true"
          ????????????command
          ="
          ????????????????????mkdir?-p?${ssh.path}backup/${TODAY}?;
          ????????????????????if?[?-f?${ssh.path}${scp_coverage_shell_file}???]?;
          ????????????????????then??
          ????????????????????????cp?${ssh.path}${scp_coverage_shell_file}?${ssh.path}backup/${TODAY}/?;
          ????????????????????fi?;
          ????????"
          >
          ????????
          </ sshexec >
          ????????
          < scp? file ="ssh/${scp_coverage_shell_file}"
          ????????????todir
          ="${ssh.myName}:${ssh.myPass}@${ssh.host}:${ssh.path}"
          ????????????trust
          ="true" ?verbose ="true" ? />

          ????????
          < sshexec? host ="${ssh.host}" ?username ="${ssh.myName}"
          ????????????password
          ="${ssh.myPass}" ?trust ="true"
          ????????????command
          ="chmod?777?${ssh.path}${scp_coverage_shell_file}" >
          ????????
          </ sshexec >
          ????
          </ target >

          ????
          < target? name ="shell/?文件查看" >
          ????????
          < input? addproperty ="show_shell_file" ?message ="輸入查看文件名(*sh):"
          ????????????defaultvalue
          ="*" >
          ????????
          </ input >
          ????????
          < sshexec? host ="${ssh.host}" ?username ="${ssh.myName}"
          ????????????password
          ="${ssh.myPass}" ?trust ="true"
          ????????????command
          ="ls??/data/meganotes/shell/${show_shell_file}" >
          ????????
          </ sshexec >
          ????
          </ target >

          ????
          < target? name ="shell/?文件拷貝" >
          ????????
          < input? addproperty ="scp_shell_file"
          ????????????message
          ="輸入?/data/meganotes/shell/?下需要文件名(cp?到?ssh?下):" >
          ????????
          </ input >
          ????????
          < scp
          ????????????
          file ="${ssh.myName}:${ssh.myPass}@${ssh.host}:/data/meganotes/shell/${scp_shell_file}"
          ????????????todir
          ="ssh" ?trust ="true" ?verbose ="true" ? />
          ????
          </ target >



          ????
          < target? name ="admin-mvn組合操作" >
          ????????
          < exec? executable ="cmd" >
          ????????????
          < arg? value ="/c" ? />
          ????????????
          < arg? value ="${basedir}/sh/mvn/meganotes_mvn_clear.bat" ? />
          ????????
          </ exec >
          ????????
          < exec? executable ="cmd" >
          ????????????
          < arg? value ="/c" ? />
          ????????????
          < arg? value ="${basedir}/sh/mvn/meganotes_mvn_install.bat" ? />
          ????????
          </ exec >
          ????????
          < exec? executable ="cmd" >
          ????????????
          < arg? value ="/c" ? />
          ????????????
          < arg? value ="${basedir}/sh/mvn/mn_mod_admin_mvn_intall.bat" ? />
          ????????
          </ exec >
          ????
          </ target >


          ????
          < target? name ="admin-tomcat日志" >
          ????????
          < sshexec? host ="${ssh.host}" ?username ="${ssh.myName}"
          ????????????password
          ="${ssh.myPass}" ?trust ="true" ?command ="${ssh.adminRunLog}" >
          ????????
          </ sshexec >
          ????
          </ target >

          ????
          < target? name ="schedule-tomcat日志" >
          ????????
          < sshexec? host ="${ssh.host}" ?username ="${ssh.myName}"
          ????????????password
          ="${ssh.myPass}" ?trust ="true"
          ????????????command
          ="${ssh.scheduleRunLog}" >
          ????????
          </ sshexec >
          ????
          </ target >
          ????
          < target? name ="查找2008/下Mp3沒轉128-64文件夾" >
          ????????
          < sshexec? host ="${ssh.host}" ?username ="${ssh.myName}"
          ????????????password
          ="${ssh.myPass}" ?trust ="true" ?command ="${ssh.64k}" >
          ????????
          </ sshexec >
          ????????
          < sshexec? host ="${ssh.host}" ?username ="${ssh.myName}"
          ????????????password
          ="${ssh.myPass}" ?trust ="true" ?command ="${ssh.128k}" >
          ????????
          </ sshexec >
          ????????
          < sshexec? host ="${ssh.host}" ?username ="${ssh.myName}"
          ????????????password
          ="${ssh.myPass}" ?trust ="true"
          ????????????command
          ="${ssh.128kto64k.err}" >
          ????????
          </ sshexec >
          ????
          </ target >

          ????
          < target? name ="admin模塊測試" >
          ????????
          < input? addproperty ="admin_test_input"
          ????????????message
          ="測試類輸入(Video*Test):" ?defaultvalue ="*Test" >
          ????????
          </ input >
          ????????
          < echo? message ="${admin_test_input}" ></ echo >
          ????????
          < exec? executable ="cmd" >
          ????????????
          < arg? value ="/c" ? />
          ????????????
          < arg
          ????????????????
          value ="${basedir}/sh/admin_test.bat?${admin_test_input}?" ? />
          ????????
          </ exec >
          ????
          </ target >
          </ project >

          posted @ 2008-12-24 16:24 G_G 閱讀(6392) | 評論 (3)編輯 收藏





          ???? public ? static ? void ?main(String[]?args)? {
          ????????
          try ? {
          ????????
          ?????????String?charset?
          = ? " UTF-8 " ;
          ?????????String?outfile?
          = ? " d:\\category.20081218.gz " ;
          ?????????BufferedReader?in?
          = ? new ?BufferedReader(
          ??????????
          new ?InputStreamReader(
          ??????????
          new ?FileInputStream( " d:\\category.20081218 " ),
          ??????????charset));
          ??????????
          ??????????BufferedOutputStream?out?
          =
          ????????????
          new ?BufferedOutputStream(
          ??????????????
          new ?GZIPOutputStream(
          ????????????????
          new ?FileOutputStream(outfile)));
          ??????????
          ??????????
          ??????????System.out.println(
          " Writing?file " );
          ??????????String?c;
          ??????????
          while ((c? = ?in.readLine()) != null )
          ????????????out.write(?(c
          + " \n " ).getBytes(charset));
          ??????????in.close();
          ??????????out.close();
          ??????????System.out.println(
          " Reading?file " );
          ??????????BufferedReader?in2?
          =
          ????????????
          new ?BufferedReader(
          ??????????????
          new ?InputStreamReader(
          ????????????????
          new ?GZIPInputStream(
          ??????????????????
          new ?FileInputStream(outfile)
          ??????????????????),charset
          ????????????????)
          ??????????????);
          ??????????String?s;
          ??????????
          while ((s? = ?in2.readLine())? != ? null )
          ????????????System.out.println(s);
          ????????}
          ? catch (Exception?e)? {
          ??????????e.printStackTrace();
          ????????}

          ??????}


          posted @ 2008-12-22 14:35 G_G 閱讀(3623) | 評論 (0)編輯 收藏



          官方上下
          http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/

          $.補全中文? 修改
          ??? jquery.autocomplete.js 中
          ??? $input.bind(($.browser.opera ? "keypress" : "keydown")
          ??? 改為
          ??? $input.bind(($.browser.opera ? "keypress" : "keyup")
          ????
          $. 在 localdata.js 》》 var cities = [..?
          ?? 中放些 中文 測試吧


          測試頁面 ,最簡單的使用頁面 。(應該算是最簡單補全測試了)
          <script?type="text/javascript"?src="../lib/jquery.js"></script>
          <script?type='text/javascript'?src='../jquery.autocomplete.js'></script>

          <link?rel="stylesheet"?type="text/css"?href="../jquery.autocomplete.css"?/>
          <script?type="text/javascript">
          $().ready(
          function()?{
          ????$(
          "#suggest1").autocomplete([
          ????
          "test1",
          ????
          "test2",
          ????
          "測試1",
          ???????
          "測試2"
          ????]);
          });
          </script>

          <input?type="text"?id="suggest1"?/>



          使用json

          <script?type="text/javascript"?src="../lib/jquery.js"></script>
          <script?type='text/javascript'?src='../jquery.autocomplete.js'></script>

          <script?type='text/javascript'?src='localdata.js'></script>
          <link?rel="stylesheet"?type="text/css"?href="../jquery.autocomplete.css"?/>
          <script?type="text/javascript">
          var?emails?=?[
          ????{?name:?
          "Peter?Pan",?to:?"peter@pan.de"?},
          ????{?name:?
          "Molly",?to:?"molly@yahoo.com"?},
          ????{?name:?
          "Forneria?Marconi",?to:?"live@japan.jp"?},
          ????{?name:?
          "Master?<em>Sync</em>",?to:?"205bw@samsung.com"?},
          ????{?name:?
          "Dr.?<strong>Tech</strong>?de?Log",?to:?"g15@logitech.com"?},
          ????{?name:?
          "Don?Corleone",?to:?"don@vegas.com"?},
          ????{?name:?
          "Mc?Chick",?to:?"info@donalds.org"?},
          ????{?name:?
          "Donnie?Darko",?to:?"dd@timeshift.info"?},
          ????{?name:?
          "Quake?The?Net",?to:?"webmaster@quakenet.org"?},
          ????{?name:?
          "Dr.?Write",?to:?"write@writable.com"?}
          ]


          $().ready(
          function()?{
          ????????$(
          "#suggest13").autocomplete(emails,?{
          ????????
          //補全中選擇顯示
          ????????formatItem:?function(row,?i,?max)?{
          ????????????
          return?i?+?"/"?+?max?+?":?\""?+?row.name?+?"\"?["?+?row.to?+?"]";
          ????????????},
          ????????
          //補全匹配格式
          ????????formatMatch:?function(row,?i,?max)?{
          ????????????
          return?row.name?;
          ????????????},
          ????????
          //補全選定后顯示
          ????????formatResult:?function(row)?{
          ????????????
          return?row.to;
          ????????}
          ????})
          });
          </script>




          posted @ 2008-12-13 09:41 G_G 閱讀(1114) | 評論 (1)編輯 收藏

          不要為 拼寫 ajax url 而郁悶了。希望能對大家有幫助。

          /*?
          ??? 1.form?ajax?使用:
          ????eG:
          form就是普通的 html form
          ????????<input?type="button"?value="xx"?onclick="formAjax('data.jsp',this.form,ajaxReturn)"/>
          ????????function?ajaxReturn(data){
          ????????????document.getElementById("div1").innerHTML?=??data?;
          ????????}
          ??
          ????
          ??? 2.ajax?使用???:
          ????AjaxFunction
          ????????AjaxFunction('url?param=tt&param2=te',function(text){??
          ????????????alert(text);
          ????????});

          ??? 3.迭代器:

          ??? recursiveNodes(array,dom,pushFun,layer)
          ? ? ?? array 迭代寄存器
          ? ? ?? dom 被迭代對象
          ?????? pushFun 自定義收集方法
          ??????????? pushFun(array,node,layer)
          ?????????????? node 迭代中對象
          ?????? layer 深度
          ??? EG:
          ??? var arr = [] ;
          ??? recursiveNodes(
          arr ,dom,function(array,node,layer){
          ??????????? arr.push(node);
          ???? },2)
          ;


          ? ? ???
          ?*/
          var?_request;
          try?{
          ????
          this._request?=?new?XMLHttpRequest();
          }?
          catch?(e)?{
          ????
          try?{
          ????????
          this._request?=?new?ActiveXObject('Msxml2.XMLHTTP');
          ????}?
          catch?(e)?{
          ????????
          try?{
          ????????????
          this._request?=?new?ActiveXObject('Microsoft.XMLHTTP');
          ????????}?
          catch?(e)?{
          ????????????request?
          =?false;
          ????????}
          ????}
          }

          var?AjaxFunction?=?function(urls,?getAjaxText)?{
          ????AjaxFunction._getAjaxText?
          =?null;

          ????_url?
          =?'';
          ????_params?
          =?'';

          ????AjaxFunction._getAjaxText?
          =?getAjaxText;
          ????
          var?strs?=?urls.split(/\?/);
          ????_url?
          =?strs[0];
          ????
          if?(strs.length?>?1)
          ????????_params?
          =?strs[1];

          ????_request.open(
          "POST",?this._url,?true);
          ????_request.setRequestHeader(
          "Cache-Control",?"no-cache");
          ????_request.setRequestHeader(
          "content-type",
          ????????????
          "application/x-www-form-urlencoded");
          ????_request.send(_params);
          ????_request.onreadystatechange?
          =?_onComplete;
          };
          function?_onComplete()?{
          ????
          if?(_request.readyState?==?4)?{
          ????????
          if?(_request.status?==?200?||?_request.status?==?0)?{
          ????????????
          if?(_request.responseText?!=?null?&&?_request.responseText?!=?''
          ????????????????????
          &&?_request.responseText?!=?'?')
          ????????????????AjaxFunction._getAjaxText(_request.responseText);
          ????????}
          ????}
          }

          /*
          ?*?迭代?1.?array,dom?2.?array,dom,layer
          ?
          */
          function?recursiveNodes(array,?dom,?pushFun,?layer)?{
          ????
          if?(layer?==?0)
          ????????
          return;
          ????
          if?(layer?>?0)?{
          ????????
          --layer;
          ????????
          if?(dom.hasChildNodes?&&?dom.hasChildNodes())?{
          ????????????
          for?(?var?i?=?0;?i?<?dom.childNodes.length;?i++)?{
          ????????????????
          var?nodeT?=?dom.childNodes.item(i);
          ????????????????
          if?(typeof?pushFun?==?"function")
          ????????????????????pushFun(array,nodeT,?layer);
          ????????????????
          else
          ????????????????????array.push(nodeT);
          ????????????????recursiveNodes(array,?dom.childNodes.item(i),?pushFun,?layer);
          ????????????}
          ????????}?
          else
          ????????????
          return;
          ????}?
          else?if?(layer?<?0)?{
          ????????
          ++layer;
          ????????
          var?nodeT?=?dom.parentNode;
          ????????
          if?(nodeT)?{
          ????????????
          if?(typeof?pushFun?==?"function")?{
          ????????????????pushFun(array,nodeT,?layer);
          ????????????}?
          else?{
          ????????????????array.push(nodeT);
          ????????????}
          ????????????recursiveNodes(array,?dom.parentNode,?pushFun,?layer)
          ????????}?
          else
          ????????????
          return;
          ????}
          }

          function?formAjax(url,ttform,returnFun){
          ????
          var?datas?=?[];
          ????
          var?arr?=?['input','select'];
          ????recursiveNodes(datas,ttform,
          function(array,node,layer){
          ????????
          for(var?i=0;i<arr.length;i++){
          ????????????
          if(?node.getAttribute?){
          ????????????????
          var?paramName?=?node.getAttribute('name')?;
          ????????????????
          if(?/select/i.test(?node.nodeName?)?){
          ????????????????????array.push(paramName
          +'='+node.options[node.selectedIndex].value);
          ????????????????}
          else?if(?paramName?!=null?&&??/^\s*(\w+)\s*$/g.test(paramName)?&&?new?RegExp(arr[i],'i').test(node.nodeName)??){
          ????????????????????array.push(paramName
          +'='+node.value);
          ????????????????}
          ????????????}
          ????????}
          ????},
          999);
          ????
          //??&#63;
          ????//&?&#38;
          ????var?urls?=?url+'?'+datas.join("&");
          ????AjaxFunction(urls,returnFun);
          }




          posted @ 2008-11-09 18:35 G_G 閱讀(1821) | 評論 (0)編輯 收藏


          function trim(str){ return str.replace(/(^\s*)|(\s*$)/g,""); }

          function recursiveNodes(array,dom,layer){
          ? if( layer==0 ) return ;
          ? if(layer>0){
          ???? --layer;
          ???? if( dom.hasChildNodes && dom.hasChildNodes() ){
          ?????? for(var i=0;i<dom.childNodes.length;i++ ){
          ????? array.push(dom.childNodes.item(i));
          ????????? recursiveNodes(array, dom.childNodes.item(i),layer ) ;
          ?????? }
          ???? }else return? ;
          ? }else if(layer<0){
          ???? ++layer;
          ???? if( dom.parentNode ){
          ?????????? array.push( dom.parentNode );
          ?????????? recursiveNodes( array,dom.parentNode,layer)
          ???? }else return ;
          ? }
          }

          /*
          [@name || && > < >= <= != @location='UK']
          */
          function singleStep(dom,stepAction,stepStr){
          ? var allArrData = [] ;
          ? var arrData = [] ;
          ? var num = stepAction.split(/\//).length ;
          ? recursiveNodes(allArrData,dom,num==2?1:999);
          ?
          ? stepStr = trim(stepStr) ;
          ? var nodeName? ;
          ? var nodeNum ;
          ? var conds = true ;
          ???? //判斷單匹配 是否有 屬性對比? [@..=..]
          ? if( /\[(.*?)\]/.test(stepStr) ){
          ????? nodeName = trim( /.*?(?=\[{1})/g.exec(stepStr)[0]?? ).replace(/\*/g,".*") ;
          ????? conds = /\[(.*?)\]/.exec(stepStr)[1].replace(/\*/g,".*") ;
          ????? if(! isNaN(conds) ){
          ??? nodeNum = parseInt(conds)-1;

          ????? }else{
          ????? //屬性 替換為
          ??????? conds = conds.replace(/(@)(.*?)(?=\W)/g," allArrData[i].getAttribute('$2') ") ;
          ??????? conds = conds.replace( /([\W]+)(.*?)::\'(.*?)\'/g," $1 /$3/g.test($2) " ) ;
          ??????? conds = conds.replace( /(text\(\))/g ," allArrData[i].innerHTML ") ;
          ??????? conds = conds.replace( /([\w\s])(=)/g ,"$2=") ;

          ????? }
          ? }else{
          ????? nodeName = stepStr ;
          ? }

          ? for(var j=i=0;i<allArrData.length;i++){
          ???? if(? eval('/'+nodeName+'/i.test( allArrData[i].nodeName ) ')?? ){
          ??? if(typeof nodeNum=="number"){
          ??? ? if(j==nodeNum){ arrData.push( allArrData[i] );? return arrData; }
          ??? ? else ??? ++j;
          ??? }else if( eval(' allArrData[i].getAttribute && '+conds) ){
          ????????? arrData.push( allArrData[i] );
          ??????? }
          ???? }
          ? }
          ? return arrData ;
          }


          function getXpath(dom,xpathStr){
          ?? var xpaths = xpathStr.split(/(\/{1,2})/g);
          ??? var arrDom = [dom] ;
          ?? for(var i=1;i<xpaths.length;i=i+2){
          ??????? var arrData = [];
          ??????? for(var j=0;j<arrDom.length;j++)
          ????????? arrData = arrData.concat( singleStep(arrDom[j],xpaths[i],xpaths[i+1]) );
          ??????? arrDom = arrData ;
          ?? }
          ?? return arrDom ;
          }

















          ******************************************************************************************************
          function trim(str){ return str.replace(/(^\s*)|(\s*$)/g,""); }

          function recursiveNodes(array,dom,layer){
          ? if( layer==0 ) return ;
          ? if(layer>0){
          ???? --layer;
          ???? if( dom.hasChildNodes && dom.hasChildNodes() ){
          ?????? for(var i=0;i<dom.childNodes.length;i++ ){
          ????? array.push(dom.childNodes.item(i));
          ????????? recursiveNodes(array, dom.childNodes.item(i),layer ) ;
          ?????? }
          ???? }else return? ;
          ? }else if(layer<0){
          ???? ++layer;
          ???? if( dom.parentNode ){
          ?????????? array.push( dom.parentNode );
          ?????????? recursiveNodes( array,dom.parentNode,layer)
          ???? }else return ;
          ? }

          }



          /*
          ? [@name || && > < >= <= != @location='UK']
          */
          function singleStep(dom,stepAction,stepStr){
          ? var allArrData = [] ;
          ? var arrData = [] ;
          ? var num = stepAction.split(/\//).length ;
          ? recursiveNodes(allArrData,dom,num==2?1:999);
          ?
          ? stepStr = trim(stepStr) ;
          ? var nodeName? ;
          ? var conds = true ;
          ???? //判斷單匹配 是否有 屬性對比? [@..=..]
          ? if( /\[(.*?)\]/.test(stepStr) ){
          ????? nodeName = trim( /^(.*?)\[{1}/.exec(stepStr)[1] ) ;
          ?????????????? //屬性 替換為
          ????? conds = /\[(.*?)\]/.exec(stepStr)[1].replace(/(@)(.*?)(?=\W)/g," allArrData[i].getAttribute('$2').toString() ") ;
          ????? conds = conds.replace( /([\W]+)(.*?)::\'(.*?)\'/g," $1 /$3/g.test($2) " ) ;
          ??????? conds = conds.replace( /(text\(\))/g ," allArrData[i].innerHTML ") ;
          ????? conds = conds.replace( /([\w\s])(=)/g ,"$2=") ;
          ? }else{
          ????? nodeName = stepStr ;
          ???? }

          ? for(var i=0;i<allArrData.length;i++){
          ???? if(? new RegExp(nodeName, 'i').test( allArrData[i].nodeName ) && eval(conds) ){
          ???????? arrData.push( allArrData[i] );
          ???????????? }
          ? }
          ? return arrData ;
          }


          function getXpath(dom,xpathStr){
          ?? var xpaths = xpathStr.split(/(\/{1,2})/g);
          ??? var arrDom = [dom] ;
          ?? for(var i=1;i<xpaths.length;i=i+2){
          ??????? var arrData = [];
          ??????? for(var j=0;j<arrDom.length;j++)
          ????????? arrData = arrData.concat( singleStep(arrDom[j],xpaths[i],xpaths[i+1]) );
          ??????? arrDom = arrData ;
          ?? }
          ?? return arrDom ;
          }

          posted @ 2008-09-24 19:57 G_G 閱讀(514) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 咸阳市| 远安县| 犍为县| 基隆市| 广丰县| 台东县| 东乡| 靖州| 吴忠市| 托里县| 西宁市| 隆德县| 独山县| 渝中区| 咸宁市| 荣成市| 天祝| 庆云县| 堆龙德庆县| 清徐县| 甘洛县| 商都县| 玉环县| 玛多县| 林口县| 桂东县| 藁城市| 淄博市| 高台县| 彰化市| 平陆县| 昔阳县| 肥东县| 寻乌县| 扬中市| 大丰市| 环江| 察雅县| 广宁县| 江陵县| 永和县|