<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 165, comments - 198, trackbacks - 0, articles - 1
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    2008年9月15日


    學(xué)習(xí)就從官方的測(cè)試開始,但不知道怎么回事官方的測(cè)試有問(wèn)題,這我就把我配置的簡(jiǎn)單junit環(huán)境共享給大家把!
    1.下載 hibernate-annotations-3.4.0.GA 并解壓 ,cd 到解壓后目錄下
    2. $>ant junit (天知道,怎么官方出的東西測(cè)試不能通過(guò)!!)
    ?? 不要急,我們來(lái)看錯(cuò)誤 (錯(cuò)誤提示有刪減)
    ???? 錯(cuò)誤-1:$>build.xml:95: ./jdbc not found.
    ???? 解決辦法-1: $>mkdir ./jdbc
    3.? $>ant junit
    ???? 錯(cuò)誤-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
    ???? 錯(cuò)誤-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
    ???? 錯(cuò)誤-4:沒(méi)有ant 錯(cuò)誤了!,但測(cè)試都為錯(cuò)誤,那我們就看看 第一個(gè)測(cè)試吧,找下原因!
    ???????? 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
    ????? 根據(jù)路徑 org.hibernate.test.annotations.ConfigurationTest
    ????? gvim? ./test/org/hibernate/test/annotations/ConfigurationTest.java
    ????? 發(fā)現(xiàn)第20行: cfg.configure( "org/hibernate/test/annotations/hibernate.cfg.xml" );
    ????? 感覺(jué)應(yīng)該沒(méi)有配置 jdbc
    ????? gvim ./test/org/hibernate/test/annotations/hibernate.cfg.xml? #果然 沒(méi)配置
    ????? 我這就放個(gè)我的簡(jiǎn)單配置上來(lái)(使用 hbm hsqldb 內(nèi)存數(shù)據(jù)庫(kù)測(cè) 試 ):
    <!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吧,既然上面錯(cuò)誤1有 jdbc 文件夾,那就是放 jdbc jar 的地方
    ????? $> cp ../hsqldb.jar? ./jdbc
    ???
    6. ? $>ant junit
    ???? 呵呵 測(cè)試 第一個(gè)正確了 ! (目前配置后,測(cè)試環(huán)境并不是全部都正確,比如第2個(gè)測(cè)試)
    ???? 其他測(cè)試錯(cuò)誤日志在??? .\build\test-reports\hsqldb ...
    ???? 比如第2個(gè)錯(cuò)誤 異常部分
    ????? 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)
    ??????? ........ 大家一邊學(xué)習(xí),一邊配置測(cè)試 環(huán)境吧。
    ??? 錯(cuò)誤日記 都會(huì)在 build\test-reports\hsqldb下

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


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


    頁(yè)面可以直接運(yùn)行:
    <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 閱讀(2001) | 評(píng)論 (0)編輯 收藏

    javascript 學(xué)習(xí)
    ?? ? ? javascript 大體上可分為3個(gè)不同部分組成: 核心(ECMAscript),文本對(duì)象(DOM),瀏覽器對(duì)象(BOM)
      1. ?核心(ECMAscript): 關(guān)鍵字,語(yǔ)句,運(yùn)算符,對(duì)象
      2. 文本對(duì)象(DOM):DOM將把整個(gè)頁(yè)面規(guī)劃成由節(jié)點(diǎn)層級(jí)構(gòu)成的文檔.
        1. 解析遵循 W3C html dom 標(biāo)準(zhǔn)
        2. ? W3C dom 參考特別關(guān)注 DOM Node 說(shuō)明???
      3. BOM 瀏覽器對(duì)象.? cookie,彈出新瀏覽器,瀏覽器設(shè)置大小
    ?
    核心(ECMAscript)Global 內(nèi)置對(duì)象;
    ????? 方法: parseInt(),isNan(),encodeURI()...等都為此對(duì)象方法
    ????? 特別注意 eval();動(dòng)態(tài)語(yǔ)言的象征 比如:eval("alert('hi')"); 但這個(gè)方法很邪惡(安全方面)
    文本對(duì)象(DOM)說(shuō)明:
    ?? ??? ?
    <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基礎(chǔ)

    ?????? $ 變量弱類型 ; ??? 匈牙利類型標(biāo)示 : var iOuouValue=100;?

    ?????? $ 結(jié)束行分號(hào)有無(wú)都可以; ??? 但再 onsubmit="javascript:function();return false;"

    ?????? $ 關(guān)鍵字 ; 提別注意

    ??????????????? "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"?

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

    ?? ??? ??? ??? ?這里特別說(shuō)明下 我們普通寫的 一個(gè) function 就是一個(gè) object?

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

    ?? ??? ??? ??? ???? 來(lái)個(gè) {name:"test",pass:"123456",addr:"bj"} //這是什么 ?! json

    ?? ??? ??? ???????? 當(dāng) var str = '{name:"test",pass:"123456",addr:"bj"}'

    ?? ??? ??? ??? ???? var objectBean = eval(str); //這里就是 對(duì)象 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); // 什么都沒(méi)有
    </SCRIPT>

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

    ??????????

    為面向?qū)ο笞龌A(chǔ):object prototype 類型的對(duì)象應(yīng)用。參考

    // 最簡(jiǎn)單的 繼承
    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
    //增加點(diǎn)信心 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



    ?? $ 語(yǔ)句 ;特殊說(shuō)明下 for?

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

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

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

    ? ? ? ? ? ? ? ??

    ???


    面向?qū)ο螅?/b>

    ? 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 ;

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

    ?? ???? 根本就是山寨版 面向?qū)ο?br />

    ? 2.構(gòu)造

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

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

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

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

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

    ?? ??? ???}

    ?? 其上 2 總 再Bean 對(duì)象創(chuàng)建時(shí),方法會(huì) “重復(fù)生成函數(shù)”!


    ? 3.原型模式

    ??? function Bean(){}

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

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

    ?? ?

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


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


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

    ???? function Bean(){

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

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

    ?? ?}

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

    ?

    ? 5.動(dòng)態(tài)原型 (注意下面開始,就是真正的面向?qū)ο?/span>!!!)

    ?? ??? function Bean(){

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

    ?? ???? //classload 加載 時(shí)

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

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

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

    ?? ??? ?}

    ???? }

    ???

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

    對(duì)象繼承

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

    ????? 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.正統(tǒng)的繼承 原型鏈 (但不支持多繼承)
    ??? 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 只能對(duì) A有用

    ?? ??? ?






    ???

    posted @ 2009-02-12 11:56 G_G 閱讀(1848) | 評(píng)論 (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 閱讀(754) | 評(píng)論 (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="/"? />

    。。。。


    關(guān)鍵:在Context上不要加reloadable和debug屬性
    ?然后 使用eclipse tomcat 調(diào)試
    ok

    posted @ 2008-12-26 17:52 G_G 閱讀(540) | 評(píng)論 (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?上載或覆蓋?到服務(wù)器?218?${ssh.path}?):" >
    ????????
    </ input >
    ????????
    < input
    ????????????
    message ="請(qǐng)確定是否使用?ssh/${scp_coverage_shell_file}?覆蓋服務(wù)器中?${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沒(méi)轉(zhuǎn)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模塊測(cè)試" >
    ????????
    < input? addproperty ="admin_test_input"
    ????????????message
    ="測(cè)試類輸入(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 閱讀(6400) | 評(píng)論 (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 閱讀(3628) | 評(píng)論 (0)編輯 收藏



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

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


    測(cè)試頁(yè)面 ,最簡(jiǎn)單的使用頁(yè)面 。(應(yīng)該算是最簡(jiǎn)單補(bǔ)全測(cè)試了)
    <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",
    ????
    "測(cè)試1",
    ???????
    "測(cè)試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,?{
    ????????
    //補(bǔ)全中選擇顯示
    ????????formatItem:?function(row,?i,?max)?{
    ????????????
    return?i?+?"/"?+?max?+?":?\""?+?row.name?+?"\"?["?+?row.to?+?"]";
    ????????????},
    ????????
    //補(bǔ)全匹配格式
    ????????formatMatch:?function(row,?i,?max)?{
    ????????????
    return?row.name?;
    ????????????},
    ????????
    //補(bǔ)全選定后顯示
    ????????formatResult:?function(row)?{
    ????????????
    return?row.to;
    ????????}
    ????})
    });
    </script>




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

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

    /*?
    ??? 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 被迭代對(duì)象
    ?????? pushFun 自定義收集方法
    ??????????? pushFun(array,node,layer)
    ?????????????? node 迭代中對(duì)象
    ?????? 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 閱讀(1827) | 評(píng)論 (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 ;
    ???? //判斷單匹配 是否有 屬性對(duì)比? [@..=..]
    ? 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 ;
    ???? //判斷單匹配 是否有 屬性對(duì)比? [@..=..]
    ? 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 閱讀(520) | 評(píng)論 (0)編輯 收藏


    Python is a dynamic object-oriented programming language that can be used for many kinds of software development.

    It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days.
    offers 提出
    integration 綜合
    extensive 寬廣
    standard libraries 標(biāo)準(zhǔn)庫(kù)


    Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code.
    report 宣告
    substantial 實(shí)質(zhì)
    productivity 生產(chǎn)力

    posted @ 2008-09-23 09:56 G_G 閱讀(205) | 評(píng)論 (1)編輯 收藏

    直接 運(yùn)行 div_show_drag.rar
    http://www.tkk7.com/Files/Good-Game/div_Show_drag.rar

    html test
    <html>
    <head>

    <script?type="text/javascript"?src="showDivUtil.js"></script>

    </head>

    <body>

    <input?type="button"?id="_in"?value="google-baidu"?onclick="test();"/>
    <div?id='_div'?/>
    <script?language="javascript">
    /*api說(shuō)明
    ????ShowDiv(?源element?,?是否使用現(xiàn)有?div?)
    ????????源element,是否使用現(xiàn)有?div?都可為null?;
    */
    var?ediv?=?new?ShowDiv('_in',null);

    function?test(){
    ????
    if(?!?ediv.isShow?){
    ????????
    // tdiv[X,Y,H,W]準(zhǔn)備展現(xiàn)div set->tdiv.X = ..? ? ,
    ??????? // tsubEle[X,Y,H,W]
    ??????? // 源ele大小位置??,tscreen[
    screenH,screenW]屏幕長(zhǎng)寬
    ????????ediv.setLocation?=?function(tdiv,tsubEle,tscreen){
    ????????????
    /*??居中展現(xiàn)
    ?????????????tdiv.W?=200?;
    ?????????????tdiv.H?=?300?;
    ?????????????tdiv.X?=?tscreen.screenW/2-tdiv.W/2?;
    ?????????????tdiv.Y?=?tscreen.screenH/2-tdiv.H/2?;
    ????????????
    */

    ?????????????
    /*??根據(jù)?tsubEle?位置?左顯示
    ????????????tdiv.X?=?tsubEle.X+tsubEle.W?;
    ????????????tdiv.Y?=?tsubEle.Y?;
    ?????????????
    */

    ??????????????
    /*??根據(jù)?tsubEle?大小??左長(zhǎng)條?顯示?
    ?????????????tdiv.X?=?tsubEle.X+tsubEle.W?;
    ?????????????tdiv.Y?=?tsubEle.Y?;
    ?????????????
    */
    ????????????
    ????????
    ??????????????
    /*??根據(jù)?tsubEle?大小??下長(zhǎng)條?顯示
    ?????????????tdiv.X?=?tsubEle.X+tsubEle.W?;
    ?????????????tdiv.Y?=?tsubEle.Y?;
    ?????????????tdiv.H?=?200?;
    ?????????????tdiv.W?=?tsubEle.W?;
    ?????????????
    */
    ????????????
    ????????????
    /*??..?等等?自己嘗試吧*/
    ????????????tdiv.innerHTML?
    =?"<li>google</li><li>baidu</li>"?;
    ????????????
    //可以參考?
    ????????????Drag.init(tdiv);
    ????????}????
    ????????ediv.setStyle('background
    -color:#F4F4F4;');
    ????????ediv.show();
    ????}
    else{
    ????????ediv.close();
    ????????
    //ediv.delete();
    ????}
    }

    </script>
    </body>
    </html>



    showDivUtil.js

    /*
    * Skynet
    *? 2008-9-15 00:56
    *?? liukaiyi@gmail.com
    */

    function?ShowDiv(subEle,ediv){
    ????
    //public?
    ????this.style??;
    ????
    this.isShow?=?false?;

    ????
    //private?
    ????this._div??;
    ????
    this._subEle??;
    ????
    this._subEle??;


    ????????
    if(?typeof?ediv?==?"undefined"?||?ediv?==?null)?
    ????????????
    this._div=document.createElement("div");
    ????????
    else?if(?typeof?ediv?==?"string")?
    ????????????
    this._div=document.getElementById(ediv);????
    ????????
    else?if(??/object/.test(typeof?ediv)?)
    ????????????
    this._div=?ediv?;
    ????????
    ????????
    if(?typeof?subEle?==?"string")?
    ????????????
    this._subEle=document.getElementById(subEle);????
    ????????
    else?if(??/object/.test(typeof?subEle)?)
    ????????????
    this._subEle=?subEle?;

    }

    ????
    //外置方法?x?,?y?,w?,?h?,?div
    ????ShowDiv.prototype.setLocation?=?new?Function()?;

    ????
    //設(shè)置?div?樣式
    ????ShowDiv.prototype.setStyle=function(styleStrOrObj){
    ????????
    this.style=this._div.style?;
    ????????
    if(?typeof?styleStrOrObj?==?"string"){
    ????????????
    var?strs?=?styleStrOrObj.split(/;/)?;
    ????????????
    for(var?i=0;i<strs.length;i++){
    ????????????????
    var?key?=?strs[i].split(/:/)[0];
    ????????????????
    var?value?=?strs[i].split(/:/)[1];
    ????????????????
    var?_s?=?key.indexOf("-")?;
    ????????????????
    if(?_s>0)?
    ????????????????????key
    =key.substring(0,_s)+key.substring(_s+1,_s+2).toLocaleUpperCase()+key.substring(_s+2,key.length);
    ????????????????
    if(?key!=null&&key!=''&&key!='?'?){
    ????????????????????eval(?'
    this._div.style.'+key+'="'+value+'"'?);
    ????????????????}
    ????????????}
    ????????}
    else?if(??/object/.test(typeof?styleStrOrObj)?)?{
    ????????????
    this._div.style?=?styleStrOrObj?;
    ????????}
    ????????
    if(this._div.style.position==null?||?this._div.style.position=="")
    ????????????
    this._div.style.position="absolute";
    ????}
    ????
    ????ShowDiv.prototype.show
    =function(){
    ????????
    if(?typeof?this._subEle?!=?"undefined"?||?this._subEle?!=?null){
    ????????????
    this._subEle.Y?=?getElementPos(this._subEle).y;
    ????????????
    this._subEle.X?=?getElementPos(this._subEle).x?;
    ????????????
    this._subEle.W?=?this._subEle.offsetWidth?;
    ????????????
    this._subEle.H?=?this._subEle.offsetHeight?;
    ????????}
    ????????
    //this._div.Y?=?sset
    ????????//this._div.X?=?sset
    ????????this._div.W?=?parseInt(?this._div.style.width?);
    ????????
    this._div.H?=?parseInt(?this._div.style.height?);
    ????????
    ????????
    this.setLocation(this._div,this._subEle,{screenW:document.body.clientWidth,screenH:document.body.clientHeight});
    ????????
    this._div.style.left?=?this._div.X??;
    ????????
    this._div.style.top?=?this._div.Y?;
    ????????
    ????????
    if(?this._div.W?&&?this._div.H?){
    ????????????
    this._div.style.width?=?this._div.W?;
    ????????????
    this._div.style.height?=?this._div.H?;
    ????????}
    ????????document.body.appendChild(
    this._div);
    ????????
    this.isShow?=?true?;
    ????}

    ????ShowDiv.prototype.close
    =function(){
    ????????document.body.removeChild(
    this._div);?
    ????????
    this.isShow?=?false?;
    ????}

    ?????ShowDiv.prototype.
    delete=function(){
    ????????document.body.removeChild(
    this._div);?
    ????????
    this._div?=?null?;
    ????????
    this.isShow?=?false?;
    ????}

    ?
    //得到 Element 位置
    //?說(shuō)明:用?Javascript?獲取指定頁(yè)面元素的位置
    //
    ?整理:http://www.codebit.cn
    //
    ?來(lái)源:YUI?DOM
    function?getElementPos(el)?{
    ????
    var?ua?=?navigator.userAgent.toLowerCase();
    ????
    var?isOpera?=?(ua.indexOf('opera')?!=?-1);
    ????
    var?isIE?=?(ua.indexOf('msie')?!=?-1?&&?!isOpera);?//?not?opera?spoof
    ????if(el.parentNode?===?null?||?el.style.display?==?'none'){
    ????????
    return?false;
    ????}
    ????
    var?parent?=?null;
    ????
    var?pos?=?[];
    ????
    var?box;

    ????
    if(el.getBoundingClientRect){
    ????
    //?IE?
    ????????box?=?el.getBoundingClientRect();
    ????????
    var?scrollTop?=?Math.max(document.documentElement.scrollTop,?document.body.scrollTop);
    ????????
    var?scrollLeft?=?Math.max(document.documentElement.scrollLeft,?document.body.scrollLeft);
    ????????
    return?{x:box.left?+?scrollLeft,?y:box.top?+?scrollTop};
    ????}
    else?if(document.getBoxObjectFor){
    ?????
    //?gecko
    ????????box?=?document.getBoxObjectFor(el);
    ????????
    var?borderLeft?=?(el.style.borderLeftWidth)?parseInt(el.style.borderLeftWidth):0;
    ????????
    var?borderTop?=?(el.style.borderTopWidth)?parseInt(el.style.borderTopWidth):0;
    ????????pos?
    =?[box.x?-?borderLeft,?box.y?-?borderTop];
    ????}
    else?{
    ?????
    //?safari?&?opera
    ????????pos?=?[el.offsetLeft,?el.offsetTop];
    ????????parent?
    =?el.offsetParent;
    ????????
    if?(parent?!=?el)?{
    ????????????
    while?(parent)?{
    ????????????????pos[
    0]?+=?parent.offsetLeft;
    ????????????????pos[
    1]?+=?parent.offsetTop;
    ????????????????parent?
    =?parent.offsetParent;
    ????????????}
    ????????}
    ?????????
    if?(ua.indexOf('opera')?!=?-1||?(?ua.indexOf('safari')?!=?-1?&&?el.style.position?==?'absolute'?)){
    ????????????pos[
    0]?-=?document.body.offsetLeft;
    ????????????pos[
    1]?-=?document.body.offsetTop;
    ????????}
    ????}
    ?
    ????
    if?(el.parentNode)?{?parent?=?el.parentNode;?}
    ????
    else?{?parent?=?null;?}
    ?
    ?
    ????
    //?account?for?any?scrolled?ancestors
    ?????while?(parent?&&?parent.tagName?!=?'BODY'?&&?parent.tagName?!=?'HTML'){?????
    ????????pos[
    0]?-=?parent.scrollLeft;
    ????????pos[
    1]?-=?parent.scrollTop;
    ????????
    if?(parent.parentNode)?{?parent?=?parent.parentNode;?}
    ????????
    else?{?parent?=?null;?}
    ????}
    ????
    return?{x:pos[0],?y:pos[1]};
    }?




    posted @ 2008-09-15 01:02 G_G 閱讀(439) | 評(píng)論 (0)編輯 收藏

    主站蜘蛛池模板: 日韩精品无码免费专区午夜不卡| 91精品导航在线网址免费| 啊v在线免费观看| 亚洲av无码无线在线观看| 在线免费视频一区二区| 亚洲一区二区无码偷拍| 成年女人男人免费视频播放| 亚洲成_人网站图片| 成人奭片免费观看| 99久久国产亚洲综合精品| 成年性生交大片免费看| 亚洲成av人片在www鸭子| 日本免费无遮挡吸乳视频电影| 亚洲午夜在线电影| 久久久99精品免费观看| 亚洲国产一区在线| 最近中文字幕免费2019| 亚洲精品在线播放视频| 国拍在线精品视频免费观看 | 日本特黄特色aa大片免费| 亚洲人成网站在线在线观看| 最近中文字幕mv免费高清在线 | 成人婷婷网色偷偷亚洲男人的天堂| 日韩免费视频观看| 美女又黄又免费的视频| 亚洲欧洲久久av| 亚洲日韩国产一区二区三区在线 | 真实国产乱子伦精品免费| 亚洲精品美女在线观看| 三年片在线观看免费大全| 亚洲精品无码久久久久秋霞| 免费国产美女爽到喷出水来视频| 丰满妇女做a级毛片免费观看| 在线亚洲精品福利网址导航| 亚洲AV永久无码天堂影院 | 又粗又大又黑又长的免费视频| 一区二区亚洲精品精华液 | 国产美女在线精品免费观看| 欧美激情综合亚洲一二区| 亚洲人成无码网站久久99热国产| 国产在线观a免费观看|