1
試圖在zombie.js無頭瀏覽器中測試quill.js編輯器(contenteditable div)。Quill.js和zombie.js
- 抱怨document.getSelection失蹤
- 抱怨document.createTreeWalker失蹤
- 似乎沒有,如果我手動調度使用編輯器的DOM節點更改事件作出迴應。
任何人都知道如何使這項工作?
試圖在zombie.js無頭瀏覽器中測試quill.js編輯器(contenteditable div)。Quill.js和zombie.js
任何人都知道如何使這項工作?
好了,這裏就是我發現:
下面是其中練得足夠用於測試quill.js最低限度的失蹤DOM方法的一些可怕的猴子補丁:
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;
});