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
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
複製代碼 代碼如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head> <title> New Document </title> </head> <script language="javascript"> function RunOnBeforeUnload() {window.onbeforeunload =
Time of Update: 2017-01-19
當時考慮有三種方法: 1.直接把路徑寫在js檔案裡,但如果引用頁面路徑層級改變就沒轍了。 2.寫個class,放在主題包裡的css檔案或者單獨建立一個css檔案給日期控制項專用。但是控制項中的其他元素並沒有使用class的需要,單獨建立相應css文檔似乎小題大做。 3.把以上兩個方法排除後,自然要採用動態載入圖片路徑的方法咯。 關鍵代碼如下: 複製代碼 代碼如下: //建立一個全域變數儲存路徑 var imgRootUrl = ""; //擷取圖片路徑所在目錄 var
Time of Update: 2017-01-19
系列簡介 也許,三百年前的艾薩克·牛頓爵士(Sir Issac Newton, 1643-1727)並沒幻想過,物理學廣泛地應用在今天許多遊戲、動畫中。為什麼在這些應用中要使用物理學?筆者認為,自我們出生以來,一直感受著物理世界的規律,意識到物體在這世界是如何"正常移動",例如射球時球為拋物線(自旋的球可能會做成弧線球) 、石子系在一根線的末端會以固定頻率擺動等等。要讓遊戲或動畫中的物體有真實感,其移動方式就要符合我們對"正常移動"的預期。 今天的遊戲動畫應用了多種物理類比技術,例如運動學類比(
Time of Update: 2017-01-19
我開啟firebug的console,花了30秒想,30秒寫,結果如下:(x為目標數組,y是去除重複元素後的結果) 複製代碼 代碼如下: var x=[1,1,3,4,5,3]; var y=[]; var tArray=function(i,arr){ var yap=false; for(var j=0;j<arr.length;j++){ if(arr[j]==i){yap=true;break;}; } if(!yap) arr.push(i); }; for(var t=0;t&
Time of Update: 2017-01-19
剛寫完,歡迎大家幫忙測試 完整的測試代碼: 進階目錄,檔案名稱排序 進階目錄,檔案名稱排序 主要實現了目錄中的數字按大小排序 排序結果: [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]主要的排序功能源碼如下(v1): 複製代碼 代碼如下: var fileSort=function(arr){ arr.sort(); var res=[],temp=[],i=0,j=0,k,reg,sc=true,cur=arr[0];
Time of Update: 2017-01-19
因為是html格式的內容,直接截取內容的前多少字元顯然不合適了。而如果直接去掉所有html格式然後再截取又無法達到想要的效果,再網上搜了一通之後,寫下如下代碼應該可以滿足基本的要求了。(js寫的,因為容易調試) 複製代碼 代碼如下: var br = {}; br.spTags = ["img","br","hr"];/*不需要成對出現的標記*/ br.contain = function(arr,it){ for(var i=0,len=arr.length;i<len;i++){
Time of Update: 2017-01-19
這裡使用原生的javascript,用物件導向的方式建立一個容易維護使用方便的滑動菜單,調用方式如下: 複製代碼 代碼如下: var $sliding = document.getElementById("silding"); var s1 = new Sliding(); s1.commands = $sliding.getElementsByTagName("dt"); s1.panels = $sliding.getElementsByTagName("dd"); ;
Time of Update: 2017-01-19
因為絕大多數的瀏覽器都和它相容,你可以在這些瀏覽器中使用它。JavaScript被接受的相當快,因為它是如此的簡單,而且使用範圍相當廣泛。許多程式員過去常常認為JavaScript是一門“玩具語言”,但是,AJAX進入市場後表現出了完全相反的一面,它讓JavaScript展現出了完全不同的能力和功能。
Time of Update: 2017-01-19
後來是一技術群問到以下一段代碼: 複製代碼 代碼如下: function html2node(s) { var d = document.createElement('div'); d.innerHTML = s; if (d.childNodes.length == 1) return d.childNodes[0]; var df = document.createDocumentFragment(); while (d.firstChild)
Time of Update: 2017-01-19
以問題開始: function Base(){}var base = new Base() 上面兩行代碼會建立幾個對象(object)? 要回答這個問題,先明確一下Javascript裡object的概念。 Objects 在Javascript裡,幾乎一切都是object(Arrays、Functions、Numbers、Objects……),而沒有C#裡的class的概念。object的本質是一個name-value
Time of Update: 2017-01-19
下面摘抄一下源碼,深入分析一下他的設計實現思路: 複製代碼 代碼如下: function format(string) { var args = arguments; var pattern = new RegExp("%([1-" + arguments.length + "])", "g"); return String(string).replace(pattern, function(match, index) { return args[index]; }); };
Time of Update: 2017-01-19
有人問到一個js問題: 複製代碼 代碼如下: var i = 0.07; var r = i*100; alert(r); 結果為什麼是7.0000000000000001? 查了下資料,其實我們知道JavsScript中,變數在儲存時並不區分number和float類型,而是統一按float儲存。而javascript使用IEEE 754-2008 標準定義的64bit浮點格式儲存number,按照IEEE 754的定義: http://en.wikipedia.org/wiki/IEEE_
Time of Update: 2017-01-19
大家在使用JS提交資料時,尤其是中文的時候,經常會需要將要提交的字串進行URL編碼。在JS中對字串進行URL編碼有好幾種方 法,encodeURI,encodeURIComponent,還有escape。在我看到的很多代碼中escape這個函數用的最多,不過這個函數卻 是不推薦使用的。下面我們來分別看看這幾個函數: encodeURI:對指定的字串進行URL編碼,不包括 : # / \ = & 這些URL中的關鍵字符。
Time of Update: 2017-01-19
效果如圖所示:下面是擷取系統內建的顏色選取器的代碼: [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]優點是:代碼比較少缺點是:只能IE下使用。
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
這是一個比較特殊的屬性,Javascript中的繼承一般都依賴這屬性實現。 在Javascript中,一切都是對象,字串是對象,數組是對象,變數是對象,函數也是對象,所以才會允許['a','b','c'].push('d');這樣的操作存在。類本身也是一個對象,也可以定義屬性和方法: 複製代碼 代碼如下: function Test(){}; Test.str = 'str'; Test.fun = function(){return 'fun';}; var r1 = Test.str; //
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中正常定義並使用數組,將其作為參數向後台傳遞: 複製代碼 代碼如下: var arry= new Array(); arry[0] = "102"; arry[1] = "103"; arry[2] = "104"; url = "test.jsp?arry="+arry; 在背景接受方法: [code] String arry =