我正在写一个关于 Range 对象的测试。我的代码类似于以下内容。
Test = function () {};
Test.prototype.test = function () {
if (window.getSelection) {
var sel = window.getSelection();
var range = sel.getRangeAt(0);
// then some code;
} else if (document.selection) {
range = document.selection.createRange();
//then some code;
return 'haha';
}
it('should create range object', function () {
var myTest, result;
myTest = new Test();
spyOn(myTest, 'test').andReturn('haha');
result = myTest.test();
expect(result).toEqual('haha');
});
当我运行测试时,它会抛出一个错误:INDEX_SIZE_ERR: INDEX_SIZE_ERR: DOM Exception 1
但是我的代码在浏览器中运行良好。
然后我发现了一些关于getRangeAt和rangeCount的信息。
在用户单击新加载的页面之前,rangeCount 为 0。
然后我尝试添加类似的代码$(document).click();
,rangeCount 仍然是 0...
它仍然抛出INDEX_SIZE_ERR: INDEX_SIZE_ERR: DOM Exception 1
所以,问题是:我怎样才能在茉莉花中正常测试范围对象?