Time of Update: 2017-01-19
事件就是使用者或瀏覽器自身執行的某種動作。比如說click,mouseover,都是事件的名字。而相應某個事件的函數就叫事件處理常式(或事件接聽程式)。為事件指定處理常式的方式有好幾種。 一:HTML事件處理常式。 如: 複製代碼 代碼如下: <script type="text/javascript"> function show(){ alert('hello world!'); } </script> <input type="button"
Time of Update: 2017-01-19
a)滑鼠事件 滑鼠事件也許是web頁面當中最常用到的事件,因為滑鼠是最常用的導航裝置,在DOM3級事件上定義了9個滑鼠事件,分別為: click:當使用者點擊滑鼠主鍵通常是指滑鼠左鍵或按斷行符號鍵時觸發。 dbclick:當使用者雙擊滑鼠主鍵時發生觸發,這個事件並沒有在DOM2級事件中定義但是卻被普遍支援了,後來在DOM3級中得到了標準化。 mousedown:當使用者按下滑鼠任意一個鍵都會觸發,這個事件是不能夠通過鍵盤觸發的。
Time of Update: 2017-01-19
這就意味著會有適當的事件冒泡,並且瀏覽器會執行分配的事件處理常式。這種能力在測試web應用程式的時候,是非常有用的,在DOM 3級規範中提供了方法來類比特定的事件,IE9 chrome FF Opera 和 Safari都支援這樣的方式,在IE8及以前的辦法的IE瀏覽器有他自己的方式來類比事件 a)Dom 事件類比 可以通過document上的createEvent()方法,在任何時候建立事件對象,此方法只接受一個參數,既要建立事件對象的事件字串,在DOM2 級規範上所有的字串都是複數形式,
Time of Update: 2017-01-19
CSS 樣式: 複製代碼 代碼如下: DIV.neat-dialog-cont { Z-INDEX: 98; BACKGROUND: none transparent scroll repeat 0% 0%; LEFT: 0px; WIDTH: 100%; POSITION: absolute; TOP: 0px; HEIGHT: 100% } DIV.neat-dialog-bg { Z-INDEX: -1; FILTER: alpha(opacity=70); LEFT: 0px;
Time of Update: 2017-01-19
複製代碼 代碼如下: function AutomateExcel() { try { //Start Excel and get Application object. var oXL; try { oXL = new ActiveXObject("Excel.Application"); } catch(e) { alert("無法啟動Excel!\n\n如果您確信您的電腦中已經安裝了Excel," + "那麼請調整IE的安全層級。\n\n具體操作:\n\n" + "工具 →
Time of Update: 2017-01-19
從前的方式——我估計也是大多數人使用的方式 比如以下的代碼——摘自新浪首頁的一段js代碼,這種方式也是大多數人使用的方式。 上面的代碼,你看完有什麼反應?你也許會把+=這種形式改成數組的push形式,有人說push比這種字元連結要快,但是也快不了多少。 如果這種嵌入的html代碼很多,你也要這樣處理嗎?如果修改(添加或者刪除)某個html,那麼你就要不斷的翻代碼,找對應的標籤,然後在找結束標籤,你不覺得麻煩嗎?也許有人會這樣寫(這個是我早期寫的,也是我最慣於使用的方式)。
Time of Update: 2017-01-19
如下所示: 複製代碼 代碼如下: var person = new Object(); person.name = "Nicholas"; person.age = "29" person.job = "Software Engineer"; person.sayName = function () { alert(this.name); };
Time of Update: 2017-01-19
其中: 1.JavaScript的sort()中如果沒有指定比較函數,則預設會按照字元的編碼順序進行升序排序。也就是說如果我們想要對數值進行排序得到的不一定是我們想要的結果。 2.Javascript的reverse()將數組中的元素逆序。 先看看上面的第一點,如果有一個數組arr=[1,6,3,7,9],使用arr.sort()後,數組的順序為1,3,6,7,9,得到了我們想要的結果。
Time of Update: 2017-01-19
執行個體JavaScript代碼 下面的這段代碼中,我們通過select元素的name屬性來設定具體要訪問style的哪個屬性(本例中為背景色),這樣,這個函數就可以用來設定不同的CSS屬性了。 複製代碼 代碼如下: <script type="text/javascript"> var d = document.getElementById("d"); function setProperty(){ var set =
Time of Update: 2017-01-19
代碼內容及下載地址 accounting.js代碼如下: 複製代碼 代碼如下: /*! * accounting.js v0.3.2 * Copyright 2011, Joss Crowcroft * * Freely distributable under the MIT license. * Portions of accounting.js are inspired or borrowed from underscore.js * * Full details and
Time of Update: 2017-01-19
複製代碼 代碼如下: var EventUtil={ //跨瀏覽器處理常式---建立方法 addHandler:function(element,type,handler){ if(element.addEventListener){ element.addEventListneter(type,handler,false); }else if(element.attachEvent){ element.attachEvent("on"+type,handler); }else{
Time of Update: 2017-01-19
之前兩篇都介紹了,通過動態載入JS檔案或者說JS模組,是怎麼一步一步實現。 首先是通過同步策略來實現模組載入與回呼函數之間進行分離,接著是通過非同步策略來實現模組載入與回呼函數之間進行分離。 這一篇,主要是為了說說怎麼最佳化非同步策略,並且實現了隨意載入(非任意順序載入模組),頁面Ready之後負載檔案。先接一下上一篇遺留下來的問題 1、頁面Ready之後進行載入 2、隨意添加模組 進行載入
Time of Update: 2017-01-19
在上一篇javascript動態載入中,提到了使用同步載入策略這一個方式來實現如 複製代碼 代碼如下: Using("jquery"); Using("User"); $("#ID").click(function(){ var user = new User(); user.name = "xx"; user.show(); }); 由於JS是單線程的,所以同步策略帶來的壞處不少,比如阻止之後的代碼運行、造成瀏覽器假死等問題。 使用非同步策略又難以實現先導包
Time of Update: 2017-01-19
現在也有很多JS動態載入的架構,比如In.js。但是這種並不是我想要的編寫方式,我來說說我的想法。 先來一段java代碼 複製代碼 代碼如下: import Biz.User; User u = new User(); u.show(); 按流程就是導包、執行個體化、調用。 JS是做不了導包的,或者說代碼意義上的導包,一般只是在頁面上進行script標籤的引入。 那麼 先假設需要寫成這樣 複製代碼 代碼如下: Using("User"); var u = new User(); u.show(
Time of Update: 2017-01-19
複製代碼 代碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type"
Time of Update: 2017-01-19
一、錯誤分類 1、語法錯誤:也稱解析錯誤,發生在傳統語言的編譯時間,在JavaScript中發生在解釋時。這些錯誤是由代碼中的意外字元直接引起的,然後就不能直接編譯/解釋。發生語法錯誤時,就不能繼續執行代碼。在JavaScript中,只有在同一個線程中的代碼會受語法錯誤的影響。在其他線程中的代碼和其他外部參考的檔案中的代碼,如果不依賴於包含錯誤的代碼,則可以繼續執行。
Time of Update: 2017-01-19
排序代碼 複製代碼 代碼如下: function SortTable(sTableID, iCol, sDataType){ this.oTable=document.getElementById(sTableID); this.oTBody=this.oTable.tBodies[0]; this.colDataRows=this.oTBody.rows; this.aTRs=[]; this.iCol=iCol; this.sDataType=sDataType; }
Time of Update: 2017-01-19
跨平台的事件EventUtil對象 EventUtil: 複製代碼 代碼如下: var EventUtil={ addEventHandler:function(oTarget, sEventType, fnHandler){ if(oTarget.addEventListener){ oTarget.addEventListener(sEventType,fnHandler,false); } else if(oTarget.attachEvent){
Time of Update: 2017-01-19
一、事件流 IE中是冒泡型事件,即從最特定的事件目標到最不特定的事件目標。 Netscape Navigator使用的是捕獲型事件,這個跟IE中採用的冒泡型事件相反。 DOM事件流同時支援兩種事件模型,但捕獲型事件先發生。 二、事件處理函數/監聽函數 事件是使用者或瀏覽器自身進行的特定行為。這些事件都有自己的名字,如click、load、mouseover等。 事件處理函數有兩種分配方式:在JavaScript中或者在HTML中。
Time of Update: 2017-01-19
檢測瀏覽器的方式 1、對象特徵檢測法:判斷瀏覽器能力的通用方法。如果更關注瀏覽器的能力而不在乎它的實際身份,就可以使用這種檢測方法。常見的原生Ajax寫法中就用這種方法來建立XMLHttpRequest: 複製代碼 代碼如下: IXHR: function(){ if(window.ActiveXObject){ XHR=new ActiveXObject('Microsoft.XMLHTTP'); }else if(window.XMLHttpRequest){ XHR=new