首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Quill.js和zombie.js

Quill.js和zombie.js
EN

Stack Overflow用户
提问于 2016-02-01 13:59:11
回答 1查看 466关注 0票数 1

尝试在quill.js无头浏览器中测试zombie.js编辑器(内容可编辑div)。

  1. 抱怨document.getSelection失踪
  2. 抱怨document.createTreeWalker失踪
  3. 如果我使用编辑器的DOM节点手动分派更改事件,则似乎没有响应。

有人知道怎么做吗?

EN

回答 1

Stack Overflow用户

发布于 2016-02-02 23:28:24

好吧,下面是我的发现:

  1. document.getSelection不受zombie.js使用的当前(旧的) jsdom版本的支持。我现在不得不把它补上。zombie.js有一个待定的PR,它应该将jsdom更新为一个更晚的版本,在这个版本中可以使用:https://github.com/assaf/zombie/issues/939
  2. document.createTreeWalker -相同
  3. 原来,quill.js是在监听"keyup“或"keydown”,而不是"change",所以需要将它们分派出去。

下面是一些缺少DOM方法的可怕的猴子补丁,这些方法被证明足以测试最低限度的quill.js:

代码语言:javascript
复制
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;

} );
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35132394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档