尝试在zombie.js 无头浏览器中测试 quill.js 编辑器(contenteditable div)。
- 抱怨缺少 document.getSelection
- 抱怨缺少 document.createTreeWalker
- 如果我使用编辑器的 DOM 节点手动分派更改事件,似乎没有响应。
任何人都知道如何使这项工作?
尝试在zombie.js 无头浏览器中测试 quill.js 编辑器(contenteditable div)。
任何人都知道如何使这项工作?
好的,这就是我发现的:
下面是缺少的 DOM 方法的一些可怕的猴子补丁,这些补丁足以测试最低限度的 quill.js:
var zombie = require( "zombie" );
zombie.Pipeline.addHandler(function(browser, request, response) {
browser.document.getSelection = browser.window.getSelection = function() {
console.warn( "getSelection called - monkey-patched, incorrect implementation" );
return null;
};
browser.document.createTreeWalker = function( x ) {
console.warn( "createTreeWalker called - monkey-patched, incorrect implementation" );
return {
currentNode: x,
nextNode: function() {
if( this.currentNode.childNodes && this.currentNode.childNodes.length ) {
this.currentNode = this.currentNode.childNodes[ 0 ];
} else if( this.currentNode.nextSibling ) {
this.currentNode = this.currentNode.nextSibling;
} else if( this.currentNode.parentNode ) {
this.currentNode = this.currentNode.parentNode.nextSibling;
}
return this.currentNode || null;
}
};
};
return response;
} );