為自訂對象添加自訂事件

由於javascript並沒有自己的事件系統,藉助於DOM的事件系統,如果只涉及到javascript對象就歇菜了。下面是一個仿製品,不要指望有事件冒泡這東西。 if(typeof Array.prototype.forEach !== "function"){ Array.prototype.forEach = function (fn, scope) { for(var

IE的window.event執行個體

今天在QQ群裡有人提到一個奇怪問題,是有關IE的事件對象有時候不等於自身的,見下面代碼(注意,本文的所有例子請在IE下執行): <button id='ss' onclick="xx(window.event)">Click</button> <script type="text/javascript"> alert(window.event==window.event); //true (function(){

擷取元素的文本

記得John Resig說過,類庫就是用來屏蔽瀏覽器的差異,但他的getText函數就明顯做不到這一點,怎麼沒人去提醒他一下呢?我的英文特爛,閱讀還可以,但要我正經八兒地寫幾句英文,估計句句都是病句……不說了,看下面測試(如果在IE下報錯,請重新整理當前頁面):<!doctype html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8

變態的節點集合

今天想實現jQuery的unwrap效果,換言之,就是用其孩子把其父節點幹掉。為了效率,用到文檔片段,而取孩子時使用到childNodes(返回一個nodeList)<!doctype html><html lang="en"> <head> <meta charset="utf-8" /> <meta content="IE=8" http-equiv="X-UA-Compatible"/>

淘到三個有用Object標籤

IE only。 <object id="player" classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"> <param name="FileName" value="http://bloghighlighter.googlecode.com/files/lostodyssey.mp3" /> </object> <object width="10

節點遍曆函數

URL: http://developer.mozilla.org/en/docs/Whitespace_in_the_DOMFirefox官網上找到的一組函數,相當於treeWalker,有了它可以方便地在IE實現Traversal API 2的所有功能(nextElementSibling,previousElementSibling,firstElementChild,lastElementChild,children)These functions let you find the

判斷是否XML文檔

xhtml的曇花一現帶來不少問題,它的目的是讓html表現得更像xml,所以才叫xhtml。但是出師未捷身先死,我們討論一下如何判定文檔是XML吧。印象中jQuery對此方法重複實現了許多次,應該比較權威,也說明這判定比較難搞。看jQuery1.42的實現: var isXML = function(elem){ // documentElement is verified for cases where it doesn't yet exist

判定節點是否位於DOM樹中

插入操作時的一個特殊需求,如果此節點沒有加入DOM樹就複製一份,否則就直接移動節點! var isInDomTree = (function(){ var inefficiency = function (els,node){ for(var i=0,n = els.length;i<n;i++){ if(els[i] === node){ return true }

文法高亮外掛程式SyntaxHighlighter的使用教程

首先到這裡下載其源碼。裡面東西挺多的,我們基本上可以把它放到兩個檔案夾就是。其中shCore.js與shCore.js與clipboard.swf放到js檔案夾中,shCore.css還有另一個CSS檔案(隨你挑一個吧)與所有圖片放到style檔案夾中。如果你想高亮html或xml代碼,那麼就在js多放一個shBrushXml.js,如果要高亮javascript代碼,就要多加一個shBrushJScript.js代碼。最後就是在我們的網頁上引用它們。 <link

十步解決IE6的各種疑難雜症

文章目錄 1、使用文件類型2、使用position: relative3、使用display:inline4、請不要使用注釋節點5、懸浮效果記得使用帶有href屬性的a元素套嵌6、樣式設定中不要使用百分比7、讓元素擷取hasLayout8、嚴格遵守(x)html的套嵌規則9、提高你的javascrip水平

小心inneHTML的地雷

大家都喜歡用innerHTML新增內容,但是innerHTML這東西在兩大陣營中有許多不同。回顧一下,IE會把標籤內前面的一些空白kill掉,還會把它裡面標籤統統大寫,會顯示動態添加的屬性,在某些元素中,它還是唯讀。這個由IE發明的東西,最後被爆如此多缺陷,真是令人心寒。不過innerHTML還有一地雷,存在於最標準的Firefox中,看下面代碼: var newTable = document.createElement('table');

修正IE6 IE7的window.resize bug

應該是一個非常著名的bug了,在IE6 IE7中對window進行resize,此事件會執行多次,或者有時誇張地不斷重複此回呼函數,陷入死迴圈,造成假死現象。具體可參看這一篇文章《window.onresize hangs IE6 and

自動執行函數

請看以下兩個函數:function a(){alert("a")}var b = function(){alert("b")}它們倆有何不同呢?翻開書,作者會告訴我們,前者為函式宣告,後者為函數運算式。函式宣告作為一種聲明,當然會在先行編譯階級有所動作(聲明提前),而函數運算式則不會。另一個區別是,函式宣告不能直接加一對括弧讓它們執行。第三個區別,運算式還可以繼續細分,運算式是由常量,變數,操作符,函數等組合而成,計算以後返回一個結果值,至少也會返回一個undefined。

遍曆節點的API

文章目錄 nodeIterator 用久了IE,人落伍的,許多新的API都無法用。比如現在講的遍曆API,在DOM1.0中,人人都知道這幾個屬性nextSibling,previousSibling,childNodes

SharedWorkerの簡単な例

SharedWorker について、仕様にある例は大きすぎて何が起こってるのかつかみにくいので、簡単な例を載せてはどうか、というメールがあったので紹介。僕も SharedWorker は例が面倒なので今日までちゃんと読んだことがなかった。簡単な順に3段階。step 1test.html <pre id="log">Log:</pre> <script> var worker = new SharedWorker('test.js'); var log =

解讀rightjs的繼承機制2

Class.Methods是一個方法集合,把經常用到的方法移出函數體是一個陪明的做法,這樣不就用每次進入函數體就反覆建立它們。從另一個角度看,Class.Methods是自動執行函數,YUI的人好像把它歸類為模組模式,EXT這樣的用法很多,把許多變數與只對當前模組有用的方法捆綁在一個閉包中,減少命名衝突。 Class.Methods = (function() { //一系列方法名,可以看到include涉及最多東西 var commons =

讓元素獲得焦點

一般而言,只有表單元素與連結才能使用focus與blur事件,因此jQuery對於許多元素就歇菜了。但只要為元素節點設定一個tabindex屬性,非表單元素也可能使用這兩種事件。但預設能使用焦時間點事件的元素一般也支援tabindex事件。為什麼這麼說呢?因為實質上,預設支援焦時間點事件的元素並不只這些,IE還預設body, frame, iframe, img, isIndex,

Element.nodeName

http://d.hatena.ne.jp/nagaton/20060908/1157691716コメントに思いついたのを勢いで書いてしまったけどちゃんと検証するお><http://lowreal.net/logs/2006/09/09/1.html Content-Type: text/htmldocument.body.nodeName //=> "BODY"http://lowreal.net/logs/2006/09/09/1.xhtmlContent-Type:

解讀rightjs的繼承機制3

佛經裡有句話,叫功不唐捐。意思是所有努力的效果不一定產生在當下,可能產生在未來,但你只要做了,它一定就有意義。我們心態平和一點,逐步去推進它,逐步去改良它,對未來必定很有意義。有人總很狹隘地支援某一類庫或架構,其實好的東西都是互相滲透的。像jQuery,它提供了對DOM的操作,但僅僅這樣是不夠的。請不要用背景增刪改查的目光來看前台,前台的展現是非常豐富多彩的。後台也不是那麼枯燥,當然對無能的人怎麼也一樣。他們總是有借口逃避學習,總是問人來解決項目上的問題。這樣的IT生涯真的只能撐到30歲。我們專

onchange事件的事件代理

實現對onchange事件的事件代理是最為複雜的,在FF與最新版的opera中,它是能冒泡到頂層對象window;對於其他標準瀏覽器,由於它的事件監聽器擁有三個參數,我們將最後一個設為true,實施捕獲就一了百了;但對於IE就麻煩,既不能冒泡又不能使用捕獲,唯一可行就是使用事件類比,換言之,使用其他事件代替onchange的效果。jQuery動用了四種事件來類比它,通過對它的深入研究,遂放棄它的設計,搞出自己的方案出來。關鍵點有兩個:監聽元素(組)的狀態變化使用何種事件充當偽onchange事件

總頁數: 61357 1 .... 5855 5856 5857 5858 5859 .... 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.