Time of Update: 2017-01-19
這篇著重講第一個原因。最後給出了一個開發模式,替換傳統的迴圈結構,可以完全避免指令碼失控的狀況發生。原文標題:Speed up your JavaScript, Part 1 原文作者:Nicholas C. Zakas 在我 上一篇文章 (譯文 ) 中,談到了各個瀏覽器究竟會在什麼情況下彈出指令碼失控提示,對於Internet Explorer
Time of Update: 2017-01-19
1、concat方法 [作用] 將多個數組聯合起來,這個方法不會改變現存的數組,它只返回了所結合數組的一份拷貝。 [文法] arrayObj.concat(array1,array2,...) [執行個體] [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行] 2、join方法, [作用] 將原有數組對象轉換成1個字串,可以用指定分隔字元進行串聯。 [文法] arrayObj.join(separator),separator為分隔字元,預設為“,”。 [執行個體] [
Time of Update: 2017-01-19
1、背景 Javascript中的回呼函數,相信大家都不陌生,最明顯的例子是做Ajax請求時,提供的回呼函數, 實際上DOM節點的事件處理方法(onclick,ondblclick等)也是回呼函數。 在使用DWR的時候,回呼函數可以作為第一個或者最後一個參數出現,如: JScript code function callBack(result){ } myDwrService.doSomething(param1,param2,callBack);//DWR的推薦方式 //或者
Time of Update: 2017-01-19
如下的用法需要在JSP中增加屬性onclick. 以全選為例,onclick="javascript:allselect()"//javascript可以省略 或者將function allselect()用document.getElementById("allselectbox").onclick = function(); 全選: fuction allselect(){ var form = document.forms[0]; var state =
Time of Update: 2017-01-19
調用時可以這樣: 1,tempStr=GetNewSelectStr(dataTable.value,"select"+rowIndex,true); 2,makeSelectBox("select"+rowIndex,tempStr,value,obj); tempStr-這個是返回的下拉式清單值的框體 dataTable.value-這個是資料來源(我這裡是一張表)
Time of Update: 2017-01-19
其實這段代碼在之前的 “ 用 Javascript 實現錨點(Anchor)間平滑跳轉” 一文已經介紹過了,但是由於這個需求並且經常用到,因此,本站專門發布此文介紹,方便查閱。 複製代碼 代碼如下:<script type="text/javascript"> // 說明:用 Javascript 擷取捲軸位置等資訊 // 來源 :ThickBox 2.1 function getScroll() { var t, l, w, h; if
Time of Update: 2017-01-19
錨點(Anchor)相信很多人都不陌生,它方便訪問者在頁面的不同位置快速跳轉,直接找到自己感興趣的內容,如果說 RSS 是整個網站的摘要,那錨點就是一個頁面的摘要,通常一個頁面內容很多的時候,都會用錨點來定位。 但是錨點也有個問題,通常點擊錨點後,頁面會立即跳到目標位置,而本文介紹的方法,實現了錨點(Anchor)間平滑跳轉,效果非常不錯。複製代碼 代碼如下:<script type="text/javascript"> // 說明 :用 Javascript
Time of Update: 2017-01-19
複製代碼 代碼如下: <script type="text/javascript"> // 說明:添加、移除、檢測 className function hasClass(element, className) { var reg = new RegExp('(\\s|^)'+className+'(\\s|$)'); return element.className.match(reg); } function addClass(element, className) { if (
Time of Update: 2017-01-19
在很多時候,我們需要改變這些預設操作,比如:點擊一個連結時,我們執行一些 ajax 操作,但是我們並不希望執行跳轉動作,於是,就有了本文:阻止瀏覽器預設操作。 其實這並不是一個非常難的課題,單獨拿出來的原因還是瀏覽器安全色問題: 複製代碼 代碼如下:<script type="text/javascript"> // 說明:Javascript 中阻止瀏覽器預設操作 // 作者:John Resig function stopDefault( e ) { // Prevent
Time of Update: 2017-01-19
當然考慮到瀏覽器(特別指IE)糟糕的js執行能力,動畫效果又要受到影響。 瀏覽器中的動畫效果主要依靠js來動態改變Dom元素外觀來形成。不過據說css正在修鍊這方面的能力哦。(拭目以待^_^) 我們需要周期性的改變dom元素的外觀,這個周期性就要依靠setTimeout()和setInterval()來完成。 它們2個哪一個更好點呢 見這裡 (是jquery的作者寫的一個文章) 我個人比較偏向setInterval,setTimeout需要用遞迴調用而且線上程很忙的情況下會延時,這會影響流暢性。
Time of Update: 2017-01-19
方法一、js數組的定義與初始化定義一維數組方法1:var _TheArray = new Array);//定義_TheArray[0]="1";_TheArray[1]="2";_TheArray[2]="3";//初始化方法2:var _TheArray = new Array("1","2","3");//直接定義並初始化定義二維數組方法1var _TheArray = new Array(); //先聲明一維for(var i=0;i<10;i++){ //一維長度為10
Time of Update: 2017-01-19
(10)addEvent 網上最流行的版本是Scott Andrew的,據說javascript界曾舉行一場比賽(此事件我們可以在Pro Javascript Techniques第100頁看到)或瀏覽PPK的網站,徵求添加事件與移除事件的函數,他就是其獲獎者。下面就是他的實現: 複製代碼 代碼如下: function addEvent(elm, evType, fn, useCapture) { if (elm.addEventListener) { elm.addEventListener(
Time of Update: 2017-01-19
發現了一個非常好的JavaScript調試方法,目前看到的是可以列印Object/Array/Function/String四種類型,使用方法和PHP中的var_dump()一樣,只要直接dump(變數名)即可。 複製代碼 代碼如下:dump(value, [showTypes]) @ param value (Any) value to dump @ param [showTypes] (Boolean) optional to display each key/value's type @
Time of Update: 2017-01-19
複製代碼 代碼如下:<div onmouseover="alert('hello');" onmouseout="alert('out_div');" > <span onmouseover="alert('world');" onmouseout="alert('out_span');" >你好</span> </div>
Time of Update: 2017-01-19
複製代碼 代碼如下:<script type="text/javascript"> //CharMode函數 //測試某個字元是屬於哪一類. function CharMode(iN){ if (iN>=48 && iN <=57) //數字 return 1; if (iN>=65 && iN <=90) //大寫字母 return 2; if (iN>=97 && iN <=122) //小寫 return 4; else return 8;
Time of Update: 2017-01-19
但是,有一些細節並不為我們所熟知。John Resig 在分析了這些細節之後,為我們提供了一個完美的解決方案,本文將作詳細介紹: 一、傳統方法不為人所知的細節 毫無疑問,在判斷函數類型時,我們使用的是typeof方法,比如: 複製代碼 代碼如下:function fn(){ //content } alert(typeof fn)//結果是"function"。 但是,該方法在一些瀏覽器中並不是像我們想像的那樣工作。 1、Firefox2和Firefox3
Time of Update: 2017-01-19
物件導向與基於對象 幾乎每個開發人員都有物件導向語言(比如C++、C#、Java)的開發經驗。 在傳統物件導向的語言中,有兩個非常重要的概念 - 類和執行個體。 類定義了一類事物公用的行為和方法;而執行個體則是類的一個具體實現。 我們還知道,物件導向編程有三個重要的概念 - 封裝、繼承和多態。 但是在JavaScript的世界中,所有的這一切特性似乎都不存在。 因為JavaScript本身不是物件導向的語言,而是基於對象的語言。
Time of Update: 2017-01-19
轉化為Boolean類型所有JavaScript中的值都能隱式的轉化為Boolean類型,比如: 複製代碼 代碼如下: 0 == false; // true 1 == true; // true '' == false // true null == false // true 但是這些值都不是Boolean類型。因此當我們使用三個等號進行比較時: 複製代碼 代碼如下: 0 === false; // false 1 === true; // false '' === false //
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>
Time of Update: 2017-01-19
JavaScript事件監聽完整執行個體(含注釋) [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]addEventListener原來在IE中不可用,在IE中要用attachEvent, 還在想,在FireFox中運行得好好的,怎麼到IE下報錯了。 處理IE與FireFox事件監聽的對象: var oEventUtil = new Object(); oEventUtil.AddEventHandler =