dojo 작은 예 (29) Filtering Select IE8 에서 입력 법 (IME) 에 응답 하지 않 으 면 suggest 를 꺼 내지 않 습 니 다.
1674 단어 ie8dojoFilteringSelect
원인 찾기, ie8 에서 한자 입력 후 입력 상자 의processInput 이 벤트 는 실행 할 수 없어 입력 내용 을 가 져 올 수 없습니다.
그러나 IE8 은 한 자 를 포함 하여 onproperty change 를 지원 하여 입력 한 모든 내용 을 얻 을 수 있 습 니 다.Filtering Select 의 부족 함 을 이 특성 으로 보완 할 수 있 습 니 다.Filtering Select 를 계승 하여 확장 하고 사용자 정의 widget 을 만들어 IE8 호 환 을 실현 하 는 것 입 니 다.
define([
"dojo/_base/declare",
"dojo/sniff",
"dijit/form/FilteringSelect"
], function(declare, has, FilteringSelect) {
return declare(FilteringSelect, {
fskey: undefined,
postCreate: function() {
var _this = this;
if(has("ie") === 8){ // IE8
this.focusNode.onpropertychange = function(){ // focusNode input ,
if(this.value){
//console.log("key",_this.fskey);
if(_this.fskey == '229'){ // support IME input
_this._startSearch(this.value); // , Ajax suggest
_this.fskey = undefined;
//window.event.cancelBubble = false;
}
}
}
}
this.inherited(arguments);
},
_onKey: function(evt){ // Override
this.fskey = evt.charCode || evt.keyCode;
//console.log("_onKey keycode",this.fskey,"type",evt.type);
this.inherited(arguments);
}
});
});
2015.3.18 보충:
위의 코드 는 IE9 이하 의 모든 IE 버 전 을 호 환 할 수 있 습 니 다. has ("ie") = = 8 을 has ("ie") < 9 로 변경 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Dojo 이벤트1. 스크롤 막대: this.plotPointsTable.on("scroll", function (e) { e.scrollTarget.scrollLeft; 2.click: this.plotPointsTable.on(...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.