Javascript setSelectionRange 在单元测试中的行为不符合预期
Javascript setSelectionRange in unit tests not behaving as expected
我正在使用 qunit 框架来对我使用 jquery 以编程方式创建的 HTML 进行单元测试交互(即 var $textarea = $(''))。这是我用来更新文本区域中的选择的代码。
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 我对这里发生的事情感到非常困惑。我已经阅读了Mozilla关于textarea元素的文档,我相信我对setSelectionRange的调用是有效的。这是否与我以编程方式创建了文本区域并且实际上并未显示这一事实有关?
当我输入问题时找到了这个问题的答案,所以我想我会为任何可能偶然发现这个问题的人分享。答案很明显,我基本上在最后一句话中击中了:我正在用$('')创建一个textarea DOM元素并存储该对象,但我从未将该对象插入到文档中。将元素附加到正文后,setSelectionRange 会按预期更新所选内容。在我的情况下,在我的单元测试结果页面上显示实际的文本区域并不是很可取的,但这可以通过调用 $textarea.hide() 轻松修复。
相关文章:
- “;Stub对象”;对象不符合检查点's条件
- 使用 jQuery 检查文本可见性 .包含代码的行为不符合预期
- Javascript setSelectionRange 在单元测试中的行为不符合预期
- DOM元素的行为不符合预期
- Javascript动画的行为不符合预期
- 谷歌图表与表给予“;[对象对象]不符合控制规范”;错误
- Chrome 中的 Array.prototype.splice - 不符合规范
- 获取集合中不符合条件的所有文档
- 标头不符合 100% 宽度
- 粘性导航栏在 jsfiddle 上工作,但在本地主机上不符合预期
- 页面视图不符合预期,HTML 未显示,页面为空白
- Javascript clearInterval 和 setInterval() 的行为不符合预期
- jQuery Clone() 在页面中的行为不符合 asp.net
- JavaScript 如果文本输入不符合参数,则阻止文本输入
- event.stopPropagation();行为不符合预期
- 为什么正则表达式模式不符合 javascript 数据类型的条件
- 表格下拉选择不符合Div
- 从没有'不符合Regex规则
- $(window).滚动在if语句内部执行,即使它没有't不符合条件
- 使用不符合noconflict的外部JavaScript文件