瀏覽器中的 Regex陷阱

js 內建對象 RegExp 我們用的很習慣 也很舒服 但是裡面卻有 嚴重的隱患 或者陷阱...原因在於 有些瀏覽器 對Regex直接量的最佳化.在本章開始前 我要引入一個例子 來說明這種不徹底的 變態的最佳化 到底合理還是不合理...c# 中的 字串直接量 做的最佳化 就非常徹底...這種最佳化我們應該是歡迎的... string str="franky";string str2="franky";在記憶體中 只有一份 字串對象 而str和str2 具備相同的一份引用. 很明顯

Object.defineProperty 介面瀏覽器實現的bug.和疑惑

先看看 MSDN上的描述.  Adds a property to an object, or modifies attributes of an existing property.Object.defineProperty(object, propertyname, descriptor)ArgumentsobjectRequired. The object on which to add or modify the property. This can be a native

HTML5 performance API 草案.

支援瀏覽器: IE9+,Chrome11+,Firefox7+.宿主對象window.performance.  參考資料:http://msdn.microsoft.com/zh-cn/office/ff975118參考w3c的標準草案:http://w3c-test.org/webperf/specs/NavigationTiming/目前,IE9+和

html5 performance 的應用嘗試.

var namespace = {};void function (window, document, ns, undefined){ ns = window[ns]; if(!window.performance || ns.Performance){ //performance api , (Date : 2011-11), ie9+(包括相容模式), chrome11+, Firefox7+ . (Safari,Opera. 沒有實現)

ES3和ES5中函數調用(function call) 的瀏覽器實現差異.

正美今天扔出來的類似下面的代碼:參考代碼:var o = { test: function () {alert('origin')}};o.test(o.test = function(){ alert('changed'); });  這段代碼,我們直覺,覺得列印 origin 才是合理的.  至少我個人是這樣認為的.但是.Chrome17-, IE8- 都會列印changed .  而 Firefox0.8+,Safai3+, Opera9.2+,IE9+ 則都列印origin.   

js call和apply的 類比邏輯實現.

   Function.prototype.Apply = function(obj, arr) {        obj = obj || window;        obj._tempFunction = this;        var rv;        if (!arr) rv = obj._tempFunction();        else {            var args = [];            for (var i = 0, len =

Chrome v8引擎 對多行注釋,做詞法分析時的bug.

此BUG,已修複了. 具體哪個版本修複的,我懶得去驗證了,我手裡的15,16已經是修複了... 先看一個注釋的寫法:/* 個/ */這個在chrome下會拋出異常. Uncaught SyntaxError: Unexpected token *原因是,漢字個的 Unicode 為 4e2a , 而chrome的程式員,為了加速詞法分析,簡單的使用了下面這種邏輯:1,掃描到/* ,就快速向後搜尋,一但遇到 code point為 2a+\u002f 的情況,他就簡單認為這是 */

心神不寧啊…

違停罰單:  在來上海工作前,也開了六年車了,上班下班如此而已. 只有一次違章記錄,被罰了50塊錢.原因是沒綁安全帶.  在上海的半年多時間裡, 現在至少有3次違章停車了. 一次200塊. 如果僅僅是這樣也還好.但是有同事的車被拖走了. 寫此文的時候有兩輛. 交警的意思是, 其他的是違停. 而被拖走的,一輛沒車牌,一輛佔了出租車停靠點. 公司的兩個停車場的車位,非常有限,至少對於開車上班比例過高的我們來說.是完全不夠的. 不夠就去馬路上停. 停了就要冒著200塊罰單,甚至被拖走的風險.

Array 的方法們 和 object 那些讓人糾結的問題 ……

昨天 一個朋友 問了這樣一個問題.  本來類似的代碼測試,以前做過好多... 但發現當我試圖從根源上找出原因的時候,卻有些無所適從. 特記錄下來,待以後求證.簡單的問題 :var con = function(){};var a = con.prototype = [];var obj = new con;obj.push(1);alert(obj[0]);alert(obj.length); //ie 6 7 8(8怪異模式下)  輸出0 , ie8標準模式 以及 ie9 和其他瀏覽器 輸出1

為什麼要避免寫入程式碼 註冊事件… 再次老生常談一下 事件註冊的方式.

對於這個話題  以前我有寫過 一篇 隨筆  地址 是 :http://www.cnblogs.com/_franky/archive/2009/03/23/1420029.html 以前那篇沒有說透徹的東西 今天詳細的 說一說. 看 代碼 : <button id ="btn1" onclick="do something ....">按鈕</button> 對於這個東西 以前說的更多的是 代碼寫入 html中 帶來的可維護性的問題 以及 行為和結構 不分離

從瀏覽器的focus blur說起

焦時間點事件 對於提高使用者體驗 無疑是有著 至關重要的作用... 但是使用他的同時 往往也會 給我們帶來一些困擾... 先說個 藉助焦點 解決一個 快顯功能表 的問題 的另類方案.以往我們對於 彈出式菜單的 關閉 有以下幾個方案. 1. 當滑鼠離開當前div時 菜單即隱藏 或者 setTimeout 隱藏 如果 滑鼠及時的回到菜單上 清除setTimeout的計時器. 2. 註冊document.onclick事件的同時 禁止 div的click事件冒泡. 或者判斷事件來源是否是

opera9.6 的一個頑固的bug

在敘述之前 先說下 萬幸 這個bug opera10已經修複了 divElement是一個 div元素 預設樣式 width:100px;border-width:0:window.setTimeout(function() { divElement.style.borderWidth = '20px'; }, 100);當setTimeout回調 來改變某div的borderWidth的時候 opera9不重新渲染就是說看起來會沒有變化除非

關於p3p 簡潔策略,以及瀏覽器的支援情況.

   簡述部分摘自某本關於P3P隱私權原則的書籍.而部分詳細的表格來自w3.org.而相關測試資料出自本人測試.如有遺漏或錯誤,歡迎指正. 相關資源:1. http://www.w3.org/P3P/2. http://www.w3.org/TR/2002/REC-P3P-20020416/  簡述: 從本質上來說,P3P

ie6 ie7 userdata 本機存放區 引發的慘案.

我使用 documentElement 作為userdata 作為本機存放區的載體. document.documentElement.addBehavior("#default#userdata");悲劇就產生了. 當使用mootools 的 選取器方法 時.  如果很悲劇的 使用了不恰當的選擇符.比如$$('[attr=123]'); 就報錯了. 為什麼呢?查看 mootools 源碼 發現 他的選取器在遍曆所有節點時 簡單的使用了下面的邏輯 :  getProperty:

瀏覽器中的 window.setInterval 和window.setTimeout

 2個計時器方法的異同...如果期望多次回調 某方法 出於效能考慮 應使用 setInterval出於 穩定 回調間隔考慮 應使用setTimeout方法  如var timer; function f(){ if(條件) clearInterval(timer)//注 clearTimeout clearInterval 都可以清除 setTimeout和setInterval 產生的時間戳記對象 setTimeout(f,間隔時間)}使用setTimeout 應吧該語句放到 當前上下文環境

flash wmode=”window” 時的遮擋問題.

在本文開始前 , 我先引入,摸同學的文檔. 來說明一些問題.然後我在此基礎上,會做一些擴充說明.文檔地址 : http://www.w3help.org/zh-cn/causes/RX8012.基於以上的認識,我們開始接下來的話題...我們所要解決的是這樣一種需求: 當我們 現在有一個很大滴 flash 在頁面上,且wmode 必須為window的前提下...如何使我們的一些元素不被 flash遮擋的呢?遺憾的是,我所能給出的答案是 . 並不完美.我仍然無法搞定 opera 和 safari

IE9的特性變化,(收集貼)

ie9 仍然未改變的一些不好的部分: .未配置 Expires max-age , no-cache ,no-stroe 時 預設仍然有會話級的緩衝.存在.getElementsByName 仍然只對 表單元素有效..仍然不支援 window.XPathEvaluator 方法..仍然不支援 XPathResult .仍然不支援 window.open 方式的postMessage 通訊..仍然不支援 onpageshow onpagehide.同ie8類似. el.setAttribute('

跨瀏覽器的 mouseenter mouseleave 以及 compareDocumentPosition

昨天去 大牛 司徒正美 的blog 看博文  突然看到 關於 onmouseenter 和onmouseleave 兩個ie專有事件..寫了這麼久 js應用 我居然不知道這兩個事件 於是 去google搜尋了一番. 才發現這兩個事件 是如此的優秀 且好用... 但搜尋過程中 發現 好多人 似乎不太明白這兩個事件 和mouseover mouseout 真正的區別 和用途..  並且看到google中搜尋得到的 一些朋友 實現的 跨瀏覽器 解決方案.

保姆和廚子.

請保姆 是為了打掃房間. 所以我們允許她 進入主人臥室 進行打掃 請廚子是為了讓他做菜.所以 廚子應該呆在廚房裡... 最近保姆告訴主人說.廚子經常偷偷進臥室. 我遇到他好幾次了...  說是說了..大多數主人沒太當回事.笑笑過去了. 保姆琢磨,這樣不行...得想個轍了... 突然想到.廚子經常把一些和做菜無關的工具 帶到主人家裡來... 我可以讓弟弟,看著廚子...並把他的這些 零碎都偷走...偷不走的就換掉.  把這個想法和主人說了以後...主人同意了. ...  晚上廚子

讓ie以及老版本w3c瀏覽器 也支援ES5的 數組對象的 幾個新增方法.

寫了簡單注釋. 具體用法 請參考 ES5 手冊 .// 類比ES5 Array.prototype.forEach    if (!Array.prototype.forEach) {        Array.prototype.forEach = function(f, oThis) {            if (!f || f.constructor != Function.toString()) return;            oThis = oThis || window; 

總頁數: 61357 1 .... 6071 6072 6073 6074 6075 .... 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.