Time of Update: 2017-01-19
一、javascript的資料 javascript的資料分為兩種:簡單資料和複雜資料。簡單資料包含number,string,boolean,undefined和null這五種;複雜資料只有一種即object。【此處友情鳴謝李戰老師,<<悟透JavaScript>>寫得太傳神,印象太深刻了】 二、javascript的資料類型檢測 1、萬能的typeof 我們先測試一下通過typeof來擷取單一資料型別。什麼也別說了,上代碼是王道: 複製代碼 代碼如下: //
Time of Update: 2017-01-19
比如: 複製代碼 代碼如下: var anchors = document.getElementsByTagName("a"); for (i = 0; i < anchors.length; i++) { var ele=anchors[i];//取某一個元素 //some code here } 上面的代碼錶示擷取文檔中的所有連結元素,然後遍曆做一些事情。
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
問題: 使得在訪問頁面的時候能夠沿用上次的設定,或者在不同的頁面間共用資料。比如使用者在訪問網站的時候設定了頁面字型的大小,那麼會希望下次訪問的時候仍然能使用同樣的設定進行瀏覽,而不用重複設定。 解決方案: 在使用者瀏覽頁面並進行設定時,將這些設定儲存在cookie中,下次訪問的時候讀取cookie中的設定。 參考下面的指令碼: 複製代碼 代碼如下: // utility function to retrieve an expiration data in proper format;
Time of Update: 2017-01-19
【程式源碼】 這個效果主要體現在CSS和javascript的配合上 CSS代碼 複製代碼 代碼如下: ul, li {margin: 0; padding: 0; border: 0;} .shop-rating { height: 25px; overflow: hidden; zoom: 1; padding: 2px 0; position: relative; z-index: 999; font:12px Arial; color:#000; line-height:1.2em }
Time of Update: 2017-01-19
不就利用window對象的setTimeout方法嗎?Bingo,一點沒錯!如果你在一個應用裡面常常要“延時執行某某函數”,那末基於DRY的原則,可以針對Function全域對象進行擴充,為函數增加一個延時方法如delay,這樣會讓你的代碼更簡潔有效。 擴站Function對象增加delay方法如下: 複製代碼 代碼如下: Function.prototype.delay=function(this1,timeout){ this1=this1||null; timeout=timeout||0
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
代碼依然簡單。所以依然沒什麼好解釋的。。 複製代碼 代碼如下: /** KOverLoad 一個建立重載函數的輔助方法。 補充上次的函數。 @Author ake 2010-07-03 @weblog http://www.cnblogs.com/akecn */ var KOverLoad = function(scope) { this.scope = scope || window; //預設添加方法到這個對象中。同時添加的方法的this指向該對象。 this.list = {};
Time of Update: 2017-01-19
事件流 JavaScript 的事件是以一種流的形式存在的,一個事件會有多個元素同時響應。有時候這不是我們 想要的,我們只需要某個特定的元素響應我們的綁定事件就可以了。 事件分類 捕獲型事件(非IE)、冒泡型事件(所有瀏覽器都支援) 捕獲型事件是自上而下的,而冒泡型事件是自下而上的。下面我用一個圖來直觀表示: 冒泡型事件我們在工作中可能會比較多遇到,但捕獲型事件怎樣才會執行到呢,如果我們想要在非 IE 瀏覽器中 要建立捕獲型事件,只需將 addEventListener
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
但不知道大家有沒遇到這樣一種情況,新開的視窗是通過<a href="" />開啟 的,而不是window.opener或showModalDialog開啟的。 尤其是需要注意的是:這個href指向的地址(頁面)不是我們開發的,譬如,我們將href指向www.cnblogs.com。 OK,問題來了:假如我們在a 所在的頁面有個按鈕,可以觸發點擊事件並進行一些操作。 而這個點擊事件需要在href開啟的IE視窗關閉後觸發。。。
Time of Update: 2017-01-19
在瀏覽器中,我們一旦把節點添加到document.body(或者其他節點)中,頁面就會更新並反映出這個變化,對於少量的更新,一條條迴圈插入也會運行很好,也是我們常用的方法。代碼如下: 複製代碼 代碼如下: for(var i=0;i<5;i++){ var op = document.createElement("span"); var oText = document.createTextNode(i); op.appendChild(oText);
Time of Update: 2017-01-19
使用類庫可以比較容易的解決相容性問題.但這背後的機理又是如何呢? 下面我們就一點點鋪開來講.首先,DOM Level2為事件處理定義了兩個函數addEventListener和removeEventListener, 這兩個函數都來自於EventTarget介面. 複製代碼 代碼如下: element.addEventListener(eventName, listener, useCapture); element.removeEventListener(eventName,
Time of Update: 2017-01-19
在開發中大家也都會注意盡量使用StringBuilder而不採用普通的字串拼接方式。但是可能大部分開發人員卻忽略了js中也需要注意這種效率問題。 下面進行一項效能測試,用事實來說話! 複製代碼 代碼如下: function xntest(){ var d1=new Date(); var str=""; for(var i=0;i<10000;i++){ str+="stext"; } var d2=new Date();