// Get dom element by id

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

 

// Register event handlers

function addEvent(obj,evt,fn)

{

        if(obj.addEventListener)

                obj.addEventListener(evt,fn,false);

        else if(obj.attachEvent)

                obj.attachEvent('on'+evt,fn);

}

 

// Removing event handlers

function removeEvent(obj,evt,fn)

{

        if(obj.removeEventListener)

                obj.removeEventListener(evt,fn,false);

        else if(obj.detachEvent)

                obj.detachEvent('on'+evt,fn);

}

 

// Handle event

function handleEventSample(e)

{

        var evt = e || window.event;

 

        var evtTarget = evt.target || evt.srcElement;

 

        var posX = evt.pageX || evt.clientX;

        var posY = evt.pageY || evt.clientY;

       

        /* W3C L-0 M-1 R-2, IE  L-1 M-4 R-2 */

        var mouseKey = evt.button;

       

        var boardKey = evt.which || evt.keyCode;

 

        // Cancelling event propagation

        if(evt.stopPropagation)

                evt.stopPropagation();

        else

                evt.cancelBubble = true;

}

 

coolouis 發表在 痞客邦 留言(0) 人氣()

 

Finding elements

[Long-distance travel]

Through the getElementById() and getElementsByTagName() methods.

[Short-distance travel]

The five properties are parentNode, firstChild, lastChild, previousSibling, and nextSibling.

 

Node information

nodeName, nodeValue, nodeType, and tagName.

 

Changing the document tree

appendChild(), insertBefore(), removeChild() and replaceChild().

 

Creating and cloning elements

documnet.createElement(), documnet.createTextNode().

cloneNode() expects an argument true or false.

true means "Clone the element and all its child nodes."

false means "Clone the element but not its child nodes."

 

innerHTML, outerHTML, innerText and outerText

 

Attributes

getAttribute() and setAttribute().

 

Level 0 DOM

document.forms[], document.images[], document.links[]

 

coolouis 發表在 痞客邦 留言(0) 人氣()

// Autoloading Objects

function __autoload($class_name) {

        require_once $class_name . '.php';

}

 

class MyClass {

        // Defining an object constructor

        function __construct() {}

       

        // Defining an object destructor

        function __destruct() {}

 

        // Defining a class's stringification      

        function __toString() {}

 

        // It is triggered when invoking inaccessible methods

        // in an object context.

        function __call($name, $arguments) {}

 

        // An object copy is created by using the clone keyword

   // (which calls the object's __clone() method if possible)

        function __clone() {}

 

        // It is utilized for reading data from inaccessible members.

        function __get($property) {}

 

        // It is run when writing data to inaccessible members.

        function __set($property, $value) {}

 

        // called when object is serialized

        function __sleep() {}

 

        // called when object is unserialized

        function __wakeUp() {}

}

 

詳細內容:http://www.php.net/manual/en/language.oop5.magic.php

coolouis 發表在 痞客邦 留言(0) 人氣()

下面是當前規則表達式裡可用的修飾.括號內的名字是那些修飾符的內部PCRE名字.

 

i (PCRE_CASELESS)

如果設置了這個修飾符,則表達式不區分大小寫.

 

m (PCRE_MULTILINE)

默認的, PCRE認為目標字符串值是單行字符串(即使他確實包含多行).行開始標記(^)只匹配字符串的開始部分,而行結束標記($)只匹配字符串的尾部,或者一個結束行(除非指定E修飾符).這個和Perl裡面一樣.

 

如果設定了這個修飾符,行開始和行結束結構分別匹配在目標字符串任何新行的當前位置後面的或者以前的,和每一個開始和結束一樣.這個等於Perl裡面的/m修飾符.如果目標字符串沒有"n"字符,或者模式裡沒有^$ ,這個修飾符不起作用.

 

s (PCRE_DOTALL)

如果設置這個修飾符,模式裡的一個""將匹配所有字符,包括換行.沒有他,換行將被排除在外.這個修飾符等同於Perl裡面的/s修飾符.一個相反的類型,例如[^a]將總是匹配換行字符,而不管這個修飾符的限制.

 

x (PCRE_EXTENDED)

如果設置這個修飾符,模式裡面的空格數句將會被全部忽略,除非用轉義符或者一個字符的內部類型,還有所有字符類型外的未轉義的#號之間的也被忽略.這個等同於Perl裡面的/x修飾符,這樣可以復雜的模式裡面加入註釋.注意,只適用於數據字符.空格字符將不會在指定的模式字符指定順序中出現。

 

e

如果設置這個修飾符, preg_replace()將在替換值裡進行正常的涉及到\的替換,等同於在PHP代碼裡面一樣,然後用於替換搜索到的字符串.

 

只在preg_replace()裡使用這個修飾符;其它PCRE函數忽略他.

 

A (PCRE_ANCHORED)

如果設置這個修飾符,模式被強制為錨(anchored,也就是說,他將值匹配搜索字符串的開始.這個效果可以通過恰當的模式結構自身來實現,那是在Perl裡面的唯一途徑.

 

D (PCRE_DOLLAR_ENDONLY)

如果設置這個修飾符,則模式裡的$修飾符將僅匹配目標字符串裡的尾部.沒有這個修飾符, $字符也匹配新行的尾部(但是不再新行的前面).如果設置了m修飾符則忽略這個修飾符.Perl裡面沒有類似的.

 

S

如果一個模式將被使用多次,使用長些時間分析他來來提高匹配的速度.如果使用這個修飾符,則進行額外的分析.目前,研究模式僅用於非錨模式,沒有一個固定的開始字符.

 

U (PCRE_UNGREEDY)

這個修飾符翻轉數量的"greediness" ,使得默認不被greedy,但是如果你緊跟問號(?),則可以greedy.這個和Perl不兼容.這個也可以通過在模式裡面的(?U)修飾符得到.

 

X (PCRE_EXTRA)

這個修飾符打開額外的功能,這些和Perl不兼容.任何模式裡面的後面帶字符但沒有特殊意義的反斜杠將引起錯誤,從而儲備這些聯合用於將來的擴充.默認的,Perl裡面,反斜杠後面有無意義的字符被當成正常的literal.

 

資料來源:網路

 

coolouis 發表在 痞客邦 留言(0) 人氣()

        我們每一個人的成長過程中,都是從模仿開始,對於程式設計應該也可以套用同樣的道理吧!所以每當我看到感興趣又有提供Source Code時,就會想download回來trace code了解它的製作方法,試著去拆解程式加上自己的想法,把東西變得更好符合自己的需求,其中有完整trace過的有phpbbphpmyadminfreenas

 

        對於書籍的選擇,我很喜歡O'ReillyCookbook這系列的書,因為裡面都是以ProblemSolutionDiscussion為章節構架說明一個實例情況,當自己有碰到類似的問題時,腦海中就會浮現出很多的解法,就像火影忍中裡的鹿丸總是能從很多思路裡,找到一條最好的路徑。

 

        另外一個我獲取新知的管道就是blog,利用rss reader訂閱感興趣的blog,用空閒的時間逐一消化,經由閱讀訊息我就比較能掌握到目前技術發展和流行是什麼?其中的優劣情況為何?技術的瓶頸在哪?避免重新造輪子情況發生。

 

  接下來談到學校的部分,五專和二技時都是讀資訊管理,大學畢業於國立高雄第一科技大學,專科是國立台中技術學院。大學專題的研究是網路搜尋引擎實作(Java-based Search Engine),以常用的Openfind網站為藍圖,進而開發出更好用的動態連結方式,找出使用者所要資料及最相關資訊。專科的專題是圖書館自動化系統,實做出許多貼心的小工具,從資料庫中自動擷取篩選資料,取代掉很多人工煩雜的作業程序。

 

  再來就是每個男生都喜歡聊的當兵部分,我大概只記得長官說的當兵三要事:練身體、交朋友、長智慧而己,其他的配合操演、駐地成效驗收、專精和下基地怎麼辛苦怎麼操人,似乎不是很重要,不過每當完成一項任務時,弟兄們同甘苦共患難培養出的情誼更加深厚,這是我深深感覺的到,退伍後回想起來是甜美的。

coolouis 發表在 痞客邦 留言(1) 人氣()

文件參考 : http://code.google.com/p/trimpath/wiki/JavaScriptTemplates

coolouis 發表在 痞客邦 留言(0) 人氣()

function posX(elmt) {
  var x = 0;
  //繞行 offsetParents
  for (var e = elmt ; e ; e = e.offsetParent) {
    //把 offsetLeft 值加總
    x += e.offsetLeft;
  }
  //繞行至 document.body
  for (e = elmt.parentNode; e && e != document.body; e = e.parentNode){
    //減去捲軸值
    if (e.scrollLeft) x -= e.scrollLeft;
  }
  return x;
}
function posY(emlt) {
  var y = 0;
  //繞行 offsetParents
  for (var e = elmt ; e ; e = e.offsetParent) {
    //把 offsetTop 值加總
    y += e.offsetTop;
  }
  //繞行至 document.body
  for (e = elmt.parentNode; e && e != document.body; e = e.parentNode){
    //減去捲軸值
    if (e.scrollTop) y -= e.scrollTop;
  }
  return y;
}

程式碼節錄於 JavaScript大全(5e)

coolouis 發表在 痞客邦 留言(0) 人氣()