定時器解決IE9中propertychange和input事件在拖拽、剪下、刪除時無法觸發
在做專案中,遇到了一個在IE9下的input框在拖拽、剪下、刪除時無法觸發change時,搜尋了好久,發現是IE9的一個BUG。
參考文章:http://blog.csdn.net/cuixiping/article/details/7450542
所以寫了一個定時器來動態的監聽input的框中值的變化,當獲取焦點時啟動定時器,當離開焦點時關閉定時器。
實現程式碼如下:
//IE9的一個BUG:propertychange和input事件在拖拽 / 剪下 / 刪除時無法觸發 var myBrowser=BrowserType(); console.info("myBrowser:"+myBrowser) if(myBrowser=="IE9"){ $('input').each( function () { var self = $(this); var intervalName; self.focus(function(){ intervalName = setInterval(function () { self.trigger("propertychange"); },300); }); self.blur(function() { clearInterval(intervalName); }); } ); }
此處設定了每300毫秒手動觸發一下propertychange事件。
另外關於判斷瀏覽器版本的程式碼是參考http://www.php.cn/js-tutorial-368364.html
附上程式碼:
function BrowserType() { var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字串 var isOpera = userAgent.indexOf("Opera") > -1; //判斷是否Opera瀏覽器 var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判斷是否IE瀏覽器 var isEdge = (userAgent.indexOf("Windows NT 6.1; Trident/7.0;") > -1|| userAgent.indexOf("Windows NT 6.1; WOW64; Trident/7.0;")) && !isIE; //判斷是否IE的Edge瀏覽器 var isFF = userAgent.indexOf("Firefox") > -1; //判斷是否Firefox瀏覽器 var isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1; //判斷是否Safari瀏覽器 var isChrome = userAgent.indexOf("Chrome") > -1 && userAgent.indexOf("Safari") > -1; //判斷Chrome瀏覽器 if (isIE) { var reIE = new RegExp("MSIE (\\d+\\.\\d+);"); reIE.test(userAgent); var fIEVersion = parseFloat(RegExp["$1"]); if(fIEVersion == 7) { return "IE7";} else if(fIEVersion == 8) { return "IE8";} else if(fIEVersion == 9) { return "IE9";} else if(fIEVersion == 10) { return "IE10";} else if(fIEVersion == 11) { return "IE11";} else { return "0"}//IE版本過低 }//isIE end if (isFF) { return "FF";} if (isOpera) { return "Opera";} if (isSafari) { return "Safari";} if (isChrome) { return "Chrome";} if (isEdge) { return "Edge";} }
相關推薦
定時器解決IE9中propertychange和input事件在拖拽、剪下、刪除時無法觸發
在做專案中,遇到了一個在IE9下的input框在拖拽、剪下、刪除時無法觸發change時,搜尋了好久,發現是IE9的一個BUG。 參考文章:http://blog.csdn.net/cuixiping/article/details/7450542 所以寫了一個定時器來動態
linux下資料夾的建立、複製、剪下、重新命名、清空、刪除命令和查詢
在home目錄下有wwwroot目錄,wwwroot下有sinozzz目錄,即/home/wwwroot/sinozzz 一、目錄建立 在/home/wwwroot目錄下新建一個sinozzz123的資料夾 mkdir /home/wwwroot/sinozzz123 二、目錄複製
定時器setTimeout/setInterval中變量報錯:not defined 的解決方法
span cor .com ldo href log bug 上下 指正 首先聲明本人資質尚淺,如有錯誤,歡迎指正、共同提高。 -------------------------------------------------------------------------
iOS中的三大定時器 iOS開發中定時器經常會用到,iOS中常用的定時器有三種,分別是NSTime,CADisplayLink和GCD。
iOS開發中定時器經常會用到,iOS中常用的定時器有三種,分別是NSTime,CADisplayLink和GCD。 NSTimer 方式1 // 建立定時器 NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2 target:
HTML中button和input button的區別
sta ram window 除了 水平 其中 插入 而是 ext button和input button的區別 一句話概括主題:<button>具有<input type="button" ... >相同的作用但是在可操控性方面更加強大。 HTML
解決mysql中limit和in不能同時使用的問題
但是 col ima 聚集 class mys mit table span 先給出數據表 CREATE TABLE `test_tb_grade` ( `ID` int(10) NOT NULL AUTO_INCREMENT, `USER_NAME` v
如何解決servlet中daGet和doPost的亂碼問題
最近學習java web 看到一些不錯的東西,拿出來分享一下。以下程式碼純手打可能有錯誤,僅供參考! .使用Stirng 進行重新編碼: uname=new String(uname.getBytes(“iso8859-1”),"utf-8");//
HTML5 完美解決javascript中iphone手機和android手機複製文字到剪下板問題
1.執行以下解決方案條件:(這個是原理)①執行復制方法時 所複製文字不能被任何 塊級元素和行內塊元素和行內元素遮蓋否則無效;(解決方案:將文字通過絕對定位或其他方式移除螢幕外)②ios中不能複製屬性值,只能複製文字元素節點;(解決方案:可以把文字顏色設成背景色就能達到隱藏看不見的效果不影響顯示);直接上程式碼
Windows中定時器Timer使用中的注意事項
在任何語言任何作業系統下的開發中,定時器都是一個必不可少的功能,大部分的作業系統和語言都有內建的定時器介面可供呼叫。在windows API中有一組定時器相關函式,包括CreateTimerQueue、DeleteTimerQueue、CreateTimerQueue
定時器實現超時傳送/接收和定期檢測非活動連線
《Linux高效能伺服器程式設計》閱讀筆記: 1. socket的傳送/接收超時 在Linux網路程式設計基礎–socket常用選項中講道,socket選項SO_RCVTIMEO和SO_SNDTIMEO分別用來設定socket接收資料超時和傳送資料超時時間
spring整合quartz定時器的專案中,如何關閉不斷輸出的batch acquisition of 0 triggers ?
不斷輸出的batch acquisition of 0 triggers太鬧心了,嚴重影響了除錯效率,不能忍,經過查閱資料得出關閉方法。希望幫助更多的小夥伴。解決方法:在pom.xml中看看使用的是哪個
解決android中viewpager和內嵌html滑動事件衝突
這幾天專案迭代,有個大的板塊是整體套用H5來做。由於H5裡還有好多小模組,需要一個滑動切換的效果,而android端只是提供一個空的fragment,佔據著viewpager的一個板塊。最開始的效果滑動起來分外尷尬。。 解決思路是這
解決EasyUI中Dialog 和 Uploadify 相互影響問題
由於現在開發的專案用到了EasyUI作為介面彈出層,但是在與Uploadify上傳外掛進行配合使用過程中出現了問題。 為了解決這個問題花費我好長時間,一直找不到解決的辦法。結果今天我在瀏覽EasyUI Dialog屬性過程中發現了“ modal ” 模式,其屬性值為bo
bootstrap中checkbox和input 在同一行時,input得到焦點不靈敏
如程式碼使用Bootstrap,實現checkbox和input在同一行的中的效果,但滑鼠在input的上方時,還是指標的狀態,input無法得到焦點。<div class="panel-body"> <div id="common-
解決Linux中SecureCRT和PUTTY上UTF-8漢字亂碼問題
一,SecureCRT設定Options->Global options->General->Default session->Edit Default Settings->Terminal->Appearance->Characte
iOS 高效能定時器解決方案2(商品打折倒計時)
1、上一篇 iOS 高效能定時器解決方案有缺陷,上一篇用的是代理設計模式,當離開當前介面時,代理就失效了,所以定時器的代理事件就不再執行,導致出錯。現在這篇進行了改進,用通知實現。 2、還是會有一個全域性定時器 import UIKit let NotifyUpdateT
兩種方法解決js中touch和click衝突問題
<1>直接清除touch事件document.removeEventListener("touchstart", self.pageLockHandler, false); documen
解決TimePickerDialog中onTimeSet和 DatePickerDialog中onDateSet執行兩次的問題
首先大家千萬別把Date寫成了Data 最近在寫Fragment的示例,在 new DatePickerDialog(getActivity(),new OnDateSetListener(
解決CentOS(6和7版本),/etc/sysconfig/下沒有iptables的問題
name 命令 install star spa lib cep pro centos 6 一、Centos 6版本解決辦法: 1.任意運行一條iptables防火墻規則配置命令: iptables -P OUTPUT ACCEPT 2.對iptables服務進行保存:
argo的輸入輸出--output和input輸出目錄或檔案到下一步驟
轉載請註明出處: argo的輸入輸出–output和input輸出目錄或檔案到下一步驟 有部分場景需要使用output把目錄或者檔案傳遞到下一個步驟。 argo提供了兩種方式 一種是引數方式parameter 一種是元件方式artifacts 各自適用於不同的場景,引數方式是