Time of Update: 2017-01-19
看看代碼<head runat="server"> <title>無標題頁</title> <script language="javascript"> function
Time of Update: 2017-01-19
你必須做出決定以這兩種方法中的哪一種來寫你的JavaScript,為了協助您作出明智的決定哪個更適合你,我們將對比一下這兩種方法的一些優劣。
Time of Update: 2017-01-19
1 概述 1.1 定義 在一些B/S結構的應用系統中,有很多頁面是需要有浮水印的。常見的就是公文系統、合約系統等。大家常常關注的是網站圖片增加浮水印,而很少關注頁面浮水印。剛去Google了一圈,關於頁面浮水印的文章的數量為幾乎為0. 本文中,流牛木馬就與大家一起交流一下有關製作網頁浮水印的心得。 本文討論以下的情形: 新增浮水印的方法需要用Javascript完成,並要求能夠方便地加入到原有的頁面中,不能影響到已有的功能。 1.2 預期目標
Time of Update: 2017-01-19
Javascript中建立對象的文法是在new運算子的後面跟著一個函數的調用。如 複製代碼 代碼如下: var obj = new Object(); var date = new Date(); 運算子new首先建立一個新的沒有任何屬性的對象,然後調用該函數,把新的對象作為this關鍵字的值傳遞。 複製代碼 代碼如下: var date = new Date()的虛擬碼的實現就是 var obj = {}; var date = Date.call(obj);
Time of Update: 2017-01-19
實現一: 複製代碼 代碼如下: /* 平淡無奇法 */ function pad(num, n) { var i = (num + "").length; while(i++ < n) num = "0" + num; return num; } 上面的代碼太平淡無奇,體現不了我的真實水平。於是有了實現二: 複製代碼 代碼如下: /* 神奇遞迴法 */ function pad2(num, n) { if ((num + "").length >= n) return num;
Time of Update: 2017-01-19
複製代碼 代碼如下: var f1 = function(p1,p2,p3){ switch(arguments.length){ case 0: alert("無參版本的f1")
Time of Update: 2017-01-19
先看javascript的普通函數用法 複製代碼 代碼如下: function sum(a,b){ var c = 10; function add(){ c++; } add(); return a + b + c; } var d = sum(4,5); alert(d) // 20 可以看出,外部要和函數sum進行互動,只能通過調用和傳回值形式,無法訪問裡面的參數c和內建函式add()。這對於函數來說屬於正常邏輯。 接下來看javascript的類用法 複製代碼 代碼如下:
Time of Update: 2017-01-19
錯誤模式:語法錯誤警告 複製代碼 代碼如下: function(){ // insert code here }(); 模式一:函數字面量 (Function Literal) 先聲明函數對象,然後執行。 複製代碼 代碼如下: (function(){ // insert code here })(); 模式二:優先運算式 (Prior Expression) 由於 JavaScript 按照從內到外的順序執行運算式,因此使用括弧來強制執行已聲明的函數。 複製代碼 代碼如下:
Time of Update: 2017-01-19
回顧一下,IE會把標籤內前面的一些空白kill掉,還會把它裡面標籤統統大寫,會顯示動態添加的屬性,在某些元素中,它還是唯讀。這個由IE發明的東西,最後被爆如此多缺陷,真是令人心寒。不過innerHTML還有一地雷,存在於最標準的Firefox中,看下面代碼: 複製代碼 代碼如下: var newTable = document.createElement('table'); document.body.appendChild(newTable); var newTr =
Time of Update: 2017-01-19
原理基本是這樣,如果傳入的是字串,那麼讓它們變成一個元素節點,不過這元素節點也可以有許多層,在最內層把要包裹的元素放進。把字串變成元素節點的方法有如下幾個。1,createElement,IE可以連元素屬性也一起建立,但只能建立一層。2,innerHTML,不過需要對原來的字串進行處理,IE與FF都有許多意想不到的預設行為,可以為你多加一點東西或少加一點東西。3,createContextualFragment,由於Opera的行為有點怪異,需要選中修改元素的位置。經日本人的測試,它轉換字串成節
Time of Update: 2017-01-19
jQuery中形如$("#txtName").addClass("err").css("font-size","12px").select().focus();的方式讓人不得不為之著迷。其實現機制就是鏈式調用。鏈式調用就是調用對象的方法後返回到該對象,嚴格來講它並不屬於文法,而只是一種文法技巧,js令人著迷的一點就是這裡。 沒有傳回值的方法屬於賦值器方法,顯然它很容易實現鏈式調用,前提是正確理解this指標的用法。 複製代碼 代碼如下: function W(){
Time of Update: 2017-01-19
1.如何擷取表單<select>域的選擇部分的文本? <form name="a"> <select name="a" size="1" onchange="_sel(this)"> <option value="a">1</option> <option value="b">2</option> <option value="c">3</option> </select> &
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 // false
Time of Update: 2017-01-19
1.大家在實際工作中,會寫各式各樣的指派陳述式。 比如最常用的obj.style.display = "none"; 如果這樣的指派陳述式一多,obj.style一排下來都要看暈了 下面我的base.js中的extend函數可以允許用json格式賦值屬性甚至是函數控制代碼 複製代碼 代碼如下: /** * 擴充函數 * @param target 需要擴充的對象 * @param params 要往target裡放的屬性和方法 */ function extend(target, params)
Time of Update: 2017-01-19
1. 它以 Java 命名,但並不是 Java它最初叫 Mocha, 接著改名為 LiveScript,最後才確定命名為 JavaScript,根據記錄,Java 的命名與 Netscape 和 Sun 之間的合作有關,作為交換條件,Netscape 在他們備受歡迎的瀏覽器中建立了 Java 運行時。值得一提的是,這個名字的出台幾近一個玩笑,要知道,LiveScript 和 Java 在用戶端指令碼方面存在敵對關係。不管怎麼說,人們後來不得不一再澄清的一件事就是,JavaScript 和
Time of Update: 2017-01-19
事件本身相當直觀,常用的有:
Time of Update: 2017-01-19
複製代碼 代碼如下: function addEventSimple(obj,evt,fn) { if (obj.addEventListener) obj.addEventListener(evt,fn,false); else if (obj.attachEvent)
Time of Update: 2017-01-19
第一個問題是對於按鍵事件來說根本就沒有標準,按照規範說的:包含鍵盤等輸入裝置的事件模型會在以後的DOM規範中作出解釋。 正如我們瞭解到的,瀏覽器在最開始設計的時候並沒有一個標準,大家都像做實驗似的,最後的成品雖然是有用的,但是肯定造成了相容性的問題。按鍵問題也不例外:這裡有兩個屬效能檢測到使用者按下了什麼鍵,雖然有足夠的理由為什麼需要兩個屬性,但是依然並不是所有的瀏覽器都支援。 另外,在keypress與keydown和keyup之間還有一些很重要的區別。
Time of Update: 2017-01-19
測試的局限性 這一章我們打算尋找哪些事件可以用來模擬滑鼠事件。注意這一系列測試不包括螢幕助讀程式。因為我不能滿足所有的條件,因此測試也有局限性。這個測試目標僅僅只是那些在圖形介面下的瀏覽器中不使用滑鼠的使用者。 我假設這些測試一樣可以用來在一些行動裝置上。因為條件不足,所以也不能測試。很多時候在行動裝置上表現總是不盡如人意。 總結 不幸的是,我們不能制定一個嚴格的滑鼠事件和非滑鼠的一對一的方案,因為非滑鼠事件和滑鼠事件有很多不同。所以下面的建議在大多數場合適用,但不是所有。
Time of Update: 2017-01-19
當然,我們也可以用正則直接匹配,文章中也給出了一個正則的例子。 分解連結的方式: 複製代碼 代碼如下: <script type="text/javascript"> <!-- // 說明:Javascript 擷取連結(url)參數的方法 function getQueryString(name) { // 如果連結沒有參數,或者連結中不存在我們要擷取的參數,直接返回空 if(location.href.indexOf("?")==-1 ||