我正在使用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并且实际上并未显示的事实有关?