Time of Update: 2017-01-19
即然該功能如此需要,但為什麼js中不提供這樣的函數呢? 目前瀏覽器都是在UI線程解析js,以Firefox瀏覽器為例,我重新編譯了js引擎,並且在js引警中添加了sleep方法,該方法調用c語言的線程睡眠函數. 將方法附加到Object上,方法簽名為sleep();無參數.預設休眠1秒鐘,如果你在js中調用該函數,瀏覽器UI介面將被阻礙。 另外如果你的js函數存在死迴圈,瀏覽器的js解析會檢測到js執行逾時會提醒你是否終止執行本頁面的js.
Time of Update: 2017-01-19
JavaScript 的成功讓人津津樂道,為 Web 網頁編寫 JavaScript 代碼已經是所有 Web 設計師的基本功,這門有趣的語言蘊藏著許多不為人熟知的東西,即使多年的 JavaScript 程式員,也未能完全吃透。本文從7個方面講述 JavaScript 中那些你不很熟知但非常實用的技巧。簡略語句 JavaScript 可以使用簡略語句快速建立對象和數組,比如下面的代碼:Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2017-01-19
2010最新全面相容ie6,ie7,ie8,ff的CSS HACK寫法 輪迴﹒修真﹒神話 創意新作《岐山》首度公開 西遊戰記炫彩登場 1080P高清畫面享受 開測前必讀 《西遊戰記》新手問題合輯 嘔血推薦 《西遊戰記》36大亮點縱覽 1開測前必讀 《西遊戰記》新手問題合輯 2開測前必讀 《西遊戰記》新手問題合輯 [Ctrl+A 全選
Time of Update: 2017-01-19
複製代碼 代碼如下: <script type="text/javascript"> function createArray() { var arr = new Array(); for (var i = 0; i < 10; i++) { arr[i] = function () { return i; } } return arr; } var funcs = createArray(); for (var i = 0; i < funcs.length; i++)
Time of Update: 2017-01-19
順便提示一下: 詞法範圍:變數的範圍是在定義時決定而不是執行時決定,也就是說詞法範圍取決於源碼,通過靜態分析就能確定,因此詞法範圍也叫做靜態範圍。 with和eval除外,所以只能說JS的範圍機制非常接近詞法範圍(Lexical scope)。 下面是一個簡單的使用全域變數的閉包執行個體: 複製代碼 代碼如下: var sWord="Hello,Welcome to web前端開發工程師的部落格,請多多指教。" function disWord(){ alert(sWord); }
Time of Update: 2017-01-19
複製代碼 代碼如下: var classA = function(){ this.prop1 = 1; } classA.prototype.func1 = function(){ var that = this, var1 = 2; function a(){ return function(){ alert(var1); alert(this.prop1); }.apply(that); }; a(); } var objA = new ClassA(); objA.func1();
Time of Update: 2017-01-19
原先使用的是try-catch的方式,在catch語句中,我們會收到一個Error對象(我們也可以拋出一個自訂異常對象)。Firefox中的Error對象擁有如下屬性: message —— 錯誤提示資訊 fileName —— 表示出錯代碼所在檔案 lineNumber —— 出錯代碼所在行數 stack —— 出錯堆棧資訊 name —— 異常對象名/類型 但是在IE下,Error對象只有如下屬性: name —— 異常對象名/類型,和Firefox中顯示的名稱可能不同 message ——
Time of Update: 2017-01-19
標準的Get和Set訪問器的實現 複製代碼 代碼如下: function Field(val){ this.value = val; } Field.prototype = { get value(){ return this._value; }, set value(val){ this._value = val; } }; var field = new Field("test"); field.value="test2"; //field.value will now return
Time of Update: 2017-01-19
JavaScript隨機排序 [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]
Time of Update: 2017-01-19
在發了博文之後,我又花了一些時間嘗試解決這個問題……經過幾次嘗試之後,我找到了另一種pattern,括弧並不再是必要的了: 複製代碼 代碼如下: eval(function () { var s = '', ww = [v] > (s += v); var ws = [n] > ww(' <A href="#">(' + n + ')</A> '); pnView3(14, [n] > ww(' [' + n + '] '), 1, 37, ws, []
Time of Update: 2017-01-19
在前一篇博文中我介紹了一種可以讓JavaScript多少具備一點類似Lambda運算式的編程能力的辦法,但是由於要相容於JavaScript的語法檢查,所以可以使用的場合也很有限。 不過有些比較細心的朋友可能發現了,我在那個(偽)Lambda模組中使用了幾個小技巧,現在我就把這幾個小技巧介紹一下: 1、使用new Function來進行語法檢查。 嘗試寫架構的同學們一定對此感受頗深:有的時候通過代碼產生的代碼可能因為技術上的失誤而產語法錯誤,導致運行過程中異常中斷;有的時候需要接受使用者的輸入,
Time of Update: 2017-01-19
但是我後來也跟人說,因為接受的參數太多,所以如果不把智能提示寫得很清楚的話,連我自己都常常搞不清楚該怎麼用。 不過,接受參數多,除了容易弄錯用法以外,還會產生另一個問題,這也是我編寫出今天發布的這個東西的原因。 來看一下JS版的頁碼呈現組件的完全版函數簽名: 複製代碼 代碼如下: function pnView( currentPage, actionCurrent, beginPage, endPage, actionBegin, actionEnd, currentSiblings,
Time of Update: 2017-01-19
中文漢字排序、 中英文混合排序、 資料大小排序、 檔案類型排序(尾碼名排序) 日期時間排序、 價格排序、 中文混合數字排序; 使用方法:文檔載入後new tableListSort(arguments,arguments)。
Time of Update: 2017-01-19
這是我在寫結構/表現/行為完全分離的選項卡(jQ版和原生JS版)一文時發現的問題. 今天一個朋友也問到我這個問題, 這個函數的確很實用. 和大家分享一下我的實現方法. 代碼: 複製代碼 代碼如下: function index(current, obj){ for (var i = 0; i < obj.length; i++) { if (obj[i] == current) { return i; } } } 原理:
Time of Update: 2017-01-19
css及html方面的技巧總結,點此前往: 前端開發中一些常用技巧總結, 你還可以前往蘭芝部落格, 查看由淘寶UED整理的前端tips: http://www.12sui.cn/category/css/. 1. document.getElementById的簡寫: http://www.jb51.net/article/24762.htm; 2. getElementsByTagName的簡寫方式: http://www.jb51.net/article/24026.htm; 3.
Time of Update: 2017-01-19
1:移動圖層 獲得點的x軸y軸座標,從而進行絕對位置(注意:豎拉框會影響 x 軸 y 軸座標值) 複製代碼 代碼如下: var x,y,z,down=false,obj function init(){ obj=event.srcElement //事件觸發對象 obj.setCapture() //設定屬於當前對象的滑鼠捕捉 z=obj.style.zIndex //擷取對象的z軸座標值 //設定對象的z軸座標值為100,確保當前層顯示在最前面 obj.style.zIndex=100
Time of Update: 2017-01-19
今天遇到了這個問題: 複製代碼 代碼如下: //虛擬碼 for (var i=0; i<n; i++) { addEvent(obj[i], "click", func(i)); } 結果出現了問題,所有的dom都被註冊了 i=n 的時候的事件,查了一些資料,說是在迴圈過程過this被改變,註冊過的事件也被隨之改變,找到了一種解決方案; 複製代碼 代碼如下: for (var i=0; i<n; i++) { (function (i){addEvent(obj[i],
Time of Update: 2017-01-19
Douglas Crockford已經傳授了一個有用的單例模式(singleton pattern)實現此規則,我認為他的模式有益於你基於YUI的那些應用。Douglas叫它模組模式(module pattern)。它是如下工作的: 1、建立一個命名空間對象:如果你使用YUI,可以用YAHOO.namespace()方法: YAHOO.namespace("myProject");這分配了一個空的myProject對象,是YAHOO的一個成員(如 果myProject已存在的話,則不會被覆蓋)。
Time of Update: 2017-01-19
當時考慮有三種方法: 1.直接把路徑寫在js檔案裡,但如果引用頁面路徑層級改變就沒轍了。 2.寫個class,放在主題包裡的css檔案或者單獨建立一個css檔案給日期控制項專用。但是控制項中的其他元素並沒有使用class的需要,單獨建立相應css文檔似乎小題大做。 3.把以上兩個方法排除後,自然要採用動態載入圖片路徑的方法咯。 關鍵代碼如下: 複製代碼 代碼如下: //建立一個全域變數儲存路徑 var imgRootUrl = ""; //擷取圖片路徑所在目錄 var
Time of Update: 2017-01-19
他老人家說將所要執行的代碼放在如< script language="JavaScript1.2" >所示嵌套下。但是當問到檢測javascript版本時,得到如下代碼: 複製代碼 代碼如下: var JS_ver = []; (Number.prototype.toFixed)?JS_ver.push("1.5"):false; ([].indexOf && [].forEach)?JS_ver.push("1.6"):false; ((function(){try {[a,b]