我正在使用qunit框架進行單元測試,這是我在Chrome中使用jQuery(即var $ textarea = $(''))以編程方式創建的HTML交互。這裏是我用來更新textarea中的選擇的代碼。單元測試中的Javascript setSelectionRange沒有像預期的那樣運行
TextAreaView.prototype.setSelectionOffsets = function(cursor) {
var input = this.$textarea.get(0);
if (!input.setSelectionRange) {
return;
}
if (cursor.start <= input.value.length && cursor.end <= input.value.length) {
input.focus();
input.setSelectionRange(cursor.start, cursor.end, "forward");
}
}
我覈實,我調用這個方法與0 < cursor.start == cursor.end < input.value.length。
當我使用調試器時,一切都顯示正常 - 但是在它命中「input.setSelectionRange」行後,對輸入元素的檢查顯示selectionEnd和selectionStart屬性= 0,selectionDirection =「none」
我很困惑這裏發生了什麼。我已經閱讀了textarea元素上的Mozilla's documentation,我相信我對setSelectionRange的調用是有效的。難道這不知何故與我以編程方式創建了textarea並且實際上並未顯示的事實有關?