1. 程式人生 > >[小Tip]IE9中focus執行順序差異

[小Tip]IE9中focus執行順序差異

提醒:本文最後更新於 2375 天前,文中所描述的資訊可能已發生改變,請謹慎使用。

以下程式碼,點test2後,firefox、chrome、opera輸出順序是1、2,但IE9的順序卻是2、1。

<input id="test1" /> <button id="test2">click</button> <div id="out"></div>
<script type="text/javascript">
    var test1 = document.getElementById('test1'),
        test2 = document
.getElementById('test2'), out = document.getElementById('out'); test1.addEventListener('focus', function(e) { out.innerHTML += '1<br />'; }); test2.addEventListener('click', function() { test1.focus(); out.innerHTML += '2<br />'; });
</script
>

PS,如果把test1.focus()換成下面這樣,則所有瀏覽器表現一致,都是1、2這樣的順序:

var evt = document.createEvent('Events');
evt.initEvent('focus', true, true, document.defaultView);
test1.dispatchEvent(evt);

從表面上來看,IE9中的test1.focus()這個過程被非同步執行了。解決方案倒是很簡單,把後面的語句放在萬能的setTimeout 0裡就萬事大吉了。

團隊的郝同學在使用QWrap的valid元件時踩到這個坑了。先記錄下來,稍後做一些詳細研究,有結論了再更新。

--EOF--

提醒:本文最後更新於 2375 天前,文中所描述的資訊可能已發生改變,請謹慎使用。

相關推薦

[Tip]IE9focus執行順序差異

提醒:本文最後更新於 2375 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 以下程式碼,點test2後,firefox、chrome、opera輸出順序是1、2,但IE9的順序卻是2、1。 <input id="test1" /> <button id="test2">

Spring框架InitializingBean執行順序

ans .com 構造函數 tar start bean 復制代碼 init auth 本文轉自:https://www.cnblogs.com/yql1986/p/4084888.html package org.test.InitializingBean; 2

JavaScript在頁面執行順序(理解聲明式函數與賦值式函數) 轉載

AD TE 我們 行動 first FN 順序 而且 編譯性語言 JavaScript在頁面中的執行順序 https://blog.csdn.net/superhoy/article/details/52946277 2016年10月27日 15:38:52 閱讀數:

Java 基礎:繼承執行順序

類的方法 主程 rgs 這一 over print 類繼承 方法 www. 1.單獨的父類測試 Java中,new一個類的對象,類裏面的靜態代碼塊、非靜態代碼、無參構造方法、有參構造方法、類的一般方法等部分, 它們的執行順序相對來說比較簡單,用程序也很容易驗證。 比如

【分析】淺談C#Control的Invoke與BeginInvoke在主副線程執行順序和區別(SamWang)

info start result 初步 總結 inter blank rap 傳遞   今天無意中看到有關Invoke和BeginInvoke的一些資料,不太清楚它們之間的區別。所以花了點時間研究了下。   據msdn中介紹,它們最大的區別就是BeginInvoke屬於

多個css檔案在同一個html執行順序2

1、檔案位置在head裡面引入,無 !important 時  或 檔案位置在body裡面引入,無 !important 時        按照從上到下的順序依次執行,同一樣式會選擇最後一個檔案裡面的渲染[就近原則]。  

程式碼執行順序 及 組合

一  類的名稱空間:   類中的程式碼在什麼時候執行的?  在例項化之前,也就是說在建立一個類時,類自己先給自己建立 建一塊空間,也就是公共的空間.(裡面會把靜態變數和__init__及方法方進去) 類中程式碼執行順序:(在例項化之前就執行了) 問題:一個類中可不可以沒有__i

DQL執行順序詳解

引言 這不是一個什麼多深的技術問題,多麼牛叉的程式設計能力。這跟一個人的開發能力也沒有非常必然的直接關係,但是知道這些會對你的SQL編寫,排憂及優化上會有很大的幫助。它不是一個複雜的知識點,但是一個非常基礎的SQL根基。不瞭解這些,你一直用普通水泥蓋

一.js高階(6)-閉包-定時器-js程式碼執行順序

閉包1:巢狀的兩個作用域中 內層作用域訪問外層作用域 區域性變數的 過程 閉包2 :  就是能夠訪問其他函式內部變數的函式;     由於js中只有函式內部的子函式才能訪問區域性變數,所以可以簡單的把閉包理解為"定義在哈拿書內部的函式";     本質上閉包就是連線函式內部和外部的一座橋樑;

reactnative父子元件component執行順序

test1.js import React, { Component } from 'react'; import { View, } from 'react-native'; import Test2 from "./Test2"; export

java 繼承程式碼執行順序(個人見解)

面試題 以下程式碼執行結果 public class Test { class Super{ int flag=1; Super(){ test(); } void test(){

finally在try和catch塊以及return執行順序

執行順序 無catch時 finally會在try包含的return之後執行,會在try外面的return之前執行 當有catch時 finally是在catch執行之後catch包含的return之前執行的 執行順序圖

web-fragment 執行順序

最近在一個decouple的專案中引入了web-fragment.xml,  遇到了一些問題,比較好玩,記錄下。 web-fragment.xml 是servlet 3.0 以後引入的,它也是用來提供web部署描述的,功能上跟web.xml是一模一樣的。不一樣的地方是web-fragme

tensorflow更新引數順序與tf.group操作執行順序

想手動實現Adagrad,因為Adagrad有兩部分需要更新,因為之前合併兩個initializer用過tf.group,想當然認為tf.group可能是帶順序的,所以打算把兩個update直接group起來執行,看起來省事,感覺卻會出事,覺得很可能不帶順序,所以寫了個小de

Java類程式碼執行順序

先上程式碼: 1.程式碼片段一: /** * @author szn25 */ public class Main { static { System.out.println("main.static!"); } public static int fun

java程式碼執行順序(靜態程式碼塊、建構函式)

1、方法、塊對應靜態和普通兩個級別,如果不產生例項,就只執行靜態部分,所有關聯類中的靜態部分總先於非靜態(例項化)部分執行。 2、靜態部分:靜態變數初始化--靜態程式碼塊--main方法。 3、非靜態部分(物件例項化過程):成員變數初始化--非靜態程式碼塊---建構函式 4、父類先於子類。靜態部分:父類靜態

【原創】Javascript在html執行順序

        換了新的工作,需要接觸Javascript了。以前總是寫php的程式碼,對Javascript還是很不熟悉的。今天在寫程式碼的時候,發現一個問題:Javascript在html中的執行順

測試框架Unitest的執行原理,以及多個測試類執行順序以及簡化方法

單元測試單元測試(unit testing)是指對軟體中的最小可測試單元進行檢查和驗證。對於單元測試中單元的含義,一般來說,要根據實際情況去判定其具體含義,如C語言中單元指一個函式,Java裡單元指一個類,圖形化的軟體中可以指一個視窗或一個選單等。總的來說,單元就是人為規定的

JavaScript在頁面執行順序

JavaScript是一種描述型指令碼語言,它不同於java或C#等編譯性語言,它不需要進行編譯成中間語言,而是由瀏覽器進行動態地解析與執行。如果你不能理解javaScript語言的執行機制,或者簡單地說,你不能掌握javascript的執行順序,那你就猶如伯樂駕馭不了千里

家java】類靜態程式碼塊、構造程式碼塊、靜態變數執行順序和繼承邏輯

相關閱讀 每篇一句 上帝給每個人都安排了幸福的一生,我們的任務就是把它走完 1、概述 誠如各位所知,java的三大特性:封裝、繼承、多型。其中繼承,是java中最有學問的一點也是最相對來說最難理解的一些東西,本文針對於此,做一些例項分析,希望能夠幫助大家