Time of Update: 2017-01-19
複製代碼 代碼如下: var info="騰訊拍拍網(www.paipai.com)是騰訊旗下知名電子商務網站。"; info +="拍拍網於2005年9月12日上線發布,"; info +="2006年3月13日宣布正式運營,"; info +="是目前國內第二大電子商務平台。"; info=info.split(","); for(var i=0; i<info.length; i++) { alert(info[i]); }
Time of Update: 2017-01-19
1. 直接在瀏覽器中編輯網頁內容 複製代碼 代碼如下:javascript:document.body.contentEditable='true';document.designMode='on'; void(0); 訪問任意網站,在地址欄輸入以上代碼,會發生當前網頁已經變成編輯模式了。2. 舞動的圖片 複製代碼 代碼如下:javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300;
Time of Update: 2017-01-19
真是五個很quick的小提示: 只在<form>元素上使用submit事件 如果要在form中綁定事件處理常式時,應該只在<form>元素上綁定submit事件,而不是給提交按鈕綁定click事件。 March:這個方式固然很好,但是,公司開發時使用了Web Flow,一個頁面就一個大form,而裡面可能有若干個提交按鈕,所以不得不把部分事件處理常式綁定在了提交按鈕的click事件上。 可點擊的都應該是連結
Time of Update: 2017-01-19
事件捕捉(Event Capture)的實現問題 W3C DOM Level2的事件模型規範中,事件在DOM樹中的傳播過程(從根節點到目標節點)被分為了兩個階段:捕捉(Capture)和冒泡(Bubbling)。下面這個圖能大概的說明整個過程: (from W3C) 如果想建立一個捕捉事件,在支援W3C 事件模型的瀏覽器中,將addEventListener的第三個參數設為true就好了。例如: 複製代碼 代碼如下:
Time of Update: 2017-01-19
事件流 JavaScript 的事件是以一種流的形式存在的,一個事件會有多個元素同時響應。有時候這不是我們 想要的,我們只需要某個特定的元素響應我們的綁定事件就可以了。 事件分類 捕獲型事件(非IE)、冒泡型事件(所有瀏覽器都支援) 捕獲型事件是自上而下的,而冒泡型事件是自下而上的。下面我用一個圖來直觀表示: 冒泡型事件我們在工作中可能會比較多遇到,但捕獲型事件怎樣才會執行到呢,如果我們想要在非 IE 瀏覽器中 要建立捕獲型事件,只需將 addEventListener
Time of Update: 2017-01-19
JavaScript的重載函數,一般是靠對arguments判斷來操作的。 比如: 複製代碼 代碼如下: var afunc = function() { args = arguments; if(args.length == 1) { console.log(1); }else if(args.length == 2) { console.log(2); }else if (args.length == 3) { console.log(3); } }
Time of Update: 2017-01-19
複製代碼 代碼如下: <script type="text/javascript"> var ball; var mouseX = 100; var mouseY = 100; var angle = 0; var radius = 0; function draw(){ ball = document.createElement("span"); ball.style.position = "absolute"; ball.style.color = "#FF0000";
Time of Update: 2017-01-19
一、變數的範圍 要理解閉包,首先必須理解Javascript特殊的變數範圍。 變數的範圍無非就是兩種:全域變數和局部變數。 Javascript語言的特殊之處,就在於函數內部可以直接讀取全域變數。 Js代碼 var n=999; function f1(){ alert(n); } f1(); // 999另一方面,在函數外部自然無法讀取函數內的局部變數。 Js代碼 function f1(){ var n=999; } alert(n); //
Time of Update: 2017-01-19
無標題文檔 [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]在這裡我引用這段代碼不是因為要方便自己以後調用,而是發現了一點我從沒有用到的方法。 getElementsByClassName 有三個參數,但調用的時候不必傳進三個參數,你只傳進第一個參數就可以了,其它兩個參數都是有預設值的。 原來 javascript 函數的參數是可以預設的,這一點我倒是一直都不知道。
Time of Update: 2017-01-19
如果你真正理解Javascript函數是如何調用工作的,那麼就可以避免一些bug的發生; 首先讓我們建立一個簡單的函數,這個函數將在下文中使用,這個函數僅僅返回當前的this的值和兩個提供的參數. 複製代碼 代碼如下: function makeArray(arg1, arg2){ return [ this, arg1, arg2 ]; } 調用這個函數非常的簡單,我們需要做的僅僅是: 複製代碼 代碼如下: makeArray('one', 'two'); 傳回值:=> [
Time of Update: 2017-01-19
1.首先我們來瞭解幾個概念,“事件”,“事件流”,“事件名稱”,“事件處理函數/事件監聽函數,也許是“老生常談”,知道的朋友可以越過。 事件: 事件是使用者自身或瀏覽器進行的特定行為。如:使用者點擊 也就是常用的click事件 事件流:多個事件 按一定順序觸發 形成了事件流 事件名稱:如上面所講的click就是事件名 事件處理函數/事件監聽函數(Dom的叫法)就是 事件觸發後的處理函數,如obj.onclick=fn;函數fn就是事件處理函數 2.下面我們來瞭解一下曆史,事件是dom的一部分
Time of Update: 2017-01-19
onmouseout 發現它的觸發太敏感,當經過層內文字鏈時,即觸發onmousetout事件,功能不能正常顯示,經過一番搜尋,整理出來,供大家參考。 1、 複製代碼 代碼如下: <script type="text/javascript"> function test(obj, e) { if (e.currentTarget) { if (e.relatedTarget != obj) { if (obj !=
Time of Update: 2017-01-19
我的答案是,超過兩個 else 的 if ,或者是超過兩個 case 的 switch 。可是在代碼中大量使用 if else 和 switch case 是很正常的事情吧?錯!絕大多數分支超過兩個的 if else 和 switch case 都不應該以寫入程式碼( hard-coded )的形式出現。 複雜分支從何而來
Time of Update: 2017-01-19
Notify & Capture 要實現 notify 和 capture 就太容易了,我們只需要把 capture 傳入的 handler 都儲存下來,然後在 notify 裡面找到匹配的 handler 就可以了。 複製代碼 代碼如下: var filterHandlerBundles = []; Dispatch.capture = function(pattern, handler) { var filter = createFilter(pattern);
Time of Update: 2017-01-19
至於篩選條件的描述,模式比對是一種很常見也很好用的方式。在 JavaScript 裡面,用 JSON 來描述模式又是相當方便的事情,所以我們來做一個 JSON 模式比對工具吧。 用例設計 作為一個 dispatcher ,我們只需要兩個方法: notify 和 capture 。一個最簡單的用例是這樣的: 複製代碼 代碼如下: Dispatcher.capture({ "status": 200, "command": "message" }, function(json) { /*
Time of Update: 2017-01-19
所以在原來的基礎上改了下,封裝起來,並做了進一步的最佳化,這樣同一個頁面就可以使用多個這樣的效果了,xhtm和css沒有變化,感興趣的朋友可以在js上面可以跟之前的代碼做個對比,這樣更容易理解和掌握。有什麼問題和建議請回帖 @&@1.xhtml複製代碼 代碼如下:<div class="jfocus"> <div id="jfocuspic"> <
Time of Update: 2017-01-19
JS.Encode是在JS代碼進行編碼之後形成的“亂碼”,此亂碼除無法閱讀之外,仍能夠良好的執行。 往往在網頁上有JS加密代碼的解碼方法,但是由於代碼中存在逸出字元,無法正確的進行解碼。 JAVAScript使用以下八種逸出字元。這些字元都是以一個反斜線(\)開始。當JAVAScript的解譯器(Interpreter)看到反斜線時,就會特別注意,表現出程式員所要表達的意思。
Time of Update: 2017-01-19
相信每一個開發人員都知道緩衝的重要性。從頭至尾有緩衝的後台(memcached,xcache等。) 來減輕db的壓力。對內容分髮網絡(CDN)緩衝中希望你的瀏覽器緩衝那些不止一次的載入資源。當然, 有用戶端緩衝,所以你不要重複昂貴的操作(即使是演算法或大量的運算)。 這是介紹的是一個不錯的javascript的方面的用戶端解決方案,可選配支援HTML5本機存放區器. Starting Simple 複製代碼 代碼如下: function CacheProvider() { // values
Time of Update: 2017-01-19
A 事件流(event flow ) 事件模型分為兩種:冒泡型事件、捕獲型事件。 冒泡型(dubbed bubbling )事件:指事件按照從最精確的對象到最不精確的對象的順序逐一觸發。 捕獲型(event capturing )事件:它與冒泡型事件相反,指事件按照從最不精確的對象到最精確的對象的順序逐一觸發。 捕獲型事件也被稱作自頂向下(DOM層次)的事件模型。 由於IE 瀏覽器不支援捕獲型事件,因此並沒有被廣泛應用。 B 事件監聽 i > 通用監聽方法 樣本一: 複製代碼 代碼如下:
Time of Update: 2017-01-19
在Javascript中,一切都是對象,字串是對象,數組是對象,變數是對象,函數也是對象,所以才會允許['a','b','c'].push('d');這樣的操作存在。類本身也是一個對象,也可以定義屬性和方法: 複製代碼 代碼如下: function Test(){}; Test.str = 'str'; Test.fun = function(){return 'fun';}; var r1 = Test.str; // str var r2 = Test.fun(); // fun var