判定是否為表單元素

發現jQuery1.41的一個bug,John Resig在實現他的事件代理系統(live)時,需要對當前元素進行判定,判定其是否為表單元素。var formElems = /textarea|input|select/i;//**********formElems.test(

高效地擷取XMLhttp對象

web2.0的標誌是Ajax的非同步通訊的發掘,給我們帶來像google map,google

訪問私人變數

javascript作為一個動態語言,動態解析指令碼的方法非常多,如萬惡又萬能的eval,低調的Function,IE獨佔的execScript,搭上DOM那邊的script標籤的text屬性,W3C的script標籤還能通過直接加文本節點或innerHTML解析指令碼。有了這些方法,私人屬性根本無處可藏。以前FF的eval更加邪惡,如果是通過模組模式構造的函數,擷取其私人變數輕而易舉。不過其bug已升級掉,就不說了。說說其原理,就是內層範圍的函數可以隨意訪問外層範圍的變數。為此我們需要設計一個

IE中不可遍曆的屬性

IE的for...in迴圈存在嚴重的缺陷,除了效能低下外,有許多屬性不可遍曆,著名有這三兄弟:constructor ,toString ,valueOf。但實際情況更恐怖。下面是來自Firefox官網的測試代碼:var ret = (function(){var obj = { constructor : function() { return "0"; } ,toString : function() { return "1"; } ,valueOf :

將各種類型或對象都轉變為數組

jQuery的makeArray有其局限性(1.3.4還有bug),我自己實現了一個,不過涉及N多輔助方法。 var dom = {}, _toString = Object.prototype.toString, _slice = Array.prototype.slice; dom.is = function(obj,type) { return _toString.call(obj).match(/^\[object\s(.*)\]$/

將”類數組對象”轉換成數組對象

javascript與dom有許多瑕疵,如著名的類數組對象Arguments,其他諸如HTMLCollection,NodeList如果它們都是數組的子類,那多省時啊。在標準瀏覽器中,好像只要對象存在length屬性,就能把它轉換為數組,但IE就不盡然。 //※※※※※※※※※※※測試1※※※※※※※※※※※※※※ function test(){ alert(arguments) arguments =

另一個版本的addEvent與removeEvent

主要是在記憶體流失上的改進(function() {window.EventUtils = {eventFuncs : [],addEvent : function(o, n, f) {var el, id;// Resolve element by id if neededo = typeof(o) == 'string' ? document.getElementById(o) : o;if (o.attachEvent) {// Since we can't use

This Week in HTML 5 – Episode 6

multimedia accessibility, Ogg Theora, and the year 2022.Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group.There is no big news this week.

利用mergeAttributes設定name屬性

在國外一部落格看到的技巧,終於解決IE的這個老大難問題。我在IE的setAttribute bug也提到其解決方案,一是innerHTML,一是IE特別的creatElement使用方法,不過都是要求在產生DOM時一同搞定name屬性,這種在DOM產生後再修改name屬性的方法真是高明啊。介紹一下mergeAttributes 方法。它有兩個參數oSource與 bPreserve :mergeAttributes oSource IE5.0

IE的setAttribute bug

IE的setAttribute中與標準瀏覽器的有許多不同,一不小心地踩雷。你不能用它來設定name屬性,你也不能在元素加入DOM後設定type屬性,也不能用它直接設定內聯事件( inline event

Performance and Design

Following up on Antranig’s recent post about performance, I’d like to address the issue of code design and its relationship to performance. Antranig’s article is very comprehensive and well-considered, and it provides us with a number of guidelines

我的選取器 獲得經過標記的沒有重複的tagName等於tag的元素集

選取器唯數不多的幾個能尋找元素的方法,其他都是過濾元素。一個重要的需求就是從一組元素中獲得tagName等於tag的子集,如過選取器如#id tag的形式,就要求過濾,但如果選取器是tag tag呢?那麼為了效率,就要求每個元素進行tag.getElementsByTagName(tag)操作。我早期的實現,利用uuid技術防止重複: //獲得經過標記的沒有重複的tagName等於tag的元素集 var getElementsByTag = function (tag,

擷取祖先元素

在設計選取器時遇到的,當我們使用後代選取器,要從上一次的結果集中擷取它們所有後代,可能存在重複元素。雖然排除重複元素是非常簡單的事,但我們能不能從一開始就防範其生產重複元素呢?答案是肯定。假設上一次的結果集有三個元素a,b,c,如果其中兩個存在內含項目關聯性,即是說A的parentNode或祖先是B,那麼一定會出現重複的子集。既然如此,一開始,我們把A去掉,就沒問題了。看下面網頁:<!doctype html><html dir="ltr" lang="zh-CN">

返回數組中不重複的元素

這是實現結構偽類only-of-type的部分代碼: var ret= ["span","span","strong","span","b"] var norepeat = function(array){ var set = array.join(",")+","; while(array.length){ var el = array.shift(); set = set.replace(el+",",""); if(

IE6與IE7的unshift 方法

又發現一個IE不標準的地方,unshift方法會返回新數組的長度,但IE6與IE7則返回undefined。 var a = [3,2,1,4,5]; alert(a.unshift(8))運行代碼我們可以通過以下方式修正此bug: var ie = (" " + (/*@cc_on @_jscript_version @*/ - 1)).slice(-1); if(ie== 6 || ie==7 || document.documentMode &&

全世界最短的IE判定

以前最短的IE判定藉助於IE不支援垂直定位字元的特性搞出來的。var ie = !+"\v1"; 僅僅需要7bytes!參見這篇文章,《32 bytes, ehr ... 9, ehr ... 7!!! to know if your browser is IE》,講述外國人是如何把IE的判定從32 bytes一步步縮簡成7 bytes!的故事但這紀錄今年1月8日被一個俄國人打破了,現在只要6

tableのcellspacing=”0″を消すために

文章目錄 border-collapse:collapseborder-spacing:0IE向けにはborder-collapse:collapse tableのcellspacing="0"が必要なことはかなり多い。 しかし、これと同じことをしてくれるCSSのプロパティ、border-spacing:0 は、IE7以下では対応していない。そこで登場するのがborder-collapse:collapse

rails與jsonp

涉及背景東西,我也不敢保證對錯,總之寫出來如果有錯望各位高人不吝賜教吧。跨域的需要大多數出於web2.0的mashup,如果我的網站想搞一個地圖,但自己實現沒有錢沒有技術顯然難度太大,這樣可以利用google map,又如想加入天氣預報,這樣也可以調用yahoo網站提供的相關服務。這些服務常常是一些HTTP

window.onerror

<!doctype html><html dir="ltr" lang="zh-CN" > <head id="head"> <meta charset="utf-8"/> <title>window.onerror </title> </script> <script type="text/javascript" charset="utf-8">

強制頁面運行於IE8模式下

突然發現IE8不能使用querySelectorAll,實在拿IE沒辦法,只好用以下手段強制使用IE8模式,於是選取器終於回到正軌。 <meta http-equiv="X-UA-Compatible" content="IE=8" /> <!doctype html><html dir="ltr" lang="zh-CN"> <head> <meta charset="utf-8"/> <meta

總頁數: 61357 1 .... 5856 5857 5858 5859 5860 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.