首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome中的NicEdit错误

Chrome中的NicEdit错误
EN

Stack Overflow用户
提问于 2011-03-21 14:50:12
回答 3查看 6.9K关注 0票数 13

我在我的网站上使用了NicEdit所见即所得插件。

我注意到,当在Chrome中实例化NicEdit时,会生成以下Javascript错误:

代码语言:javascript
复制
Uncaught TypeError: Object  has no method 'createRange'

这不会阻止插件的工作,但如果可能的话,我想阻止它。下面是令人不快的方法:

代码语言:javascript
复制
getRng : function() {
        var s = this.getSel();
        if(!s) { return null; }
        return (s.rangeCount > 0) ? s.getRangeAt(0) : s.createRange();
}

作为一个项目,NicEdit似乎已经死了,这就是为什么我在这里而不是在NicEdit论坛上问这个问题的原因。我希望有人知道这个问题的“快速修复”方法。在所有其他方面,NicEdit对我来说都工作得很好,所以我还不愿意改变到一个不同的所见即所得插件……

(提前)感谢你的帮助。

EN

回答 3

Stack Overflow用户

发布于 2011-04-02 09:24:05

问题是Webkit的selection对象的实现没有定义createRange( )方法。该方法似乎就是specific to Internet Explorer。对于Webkit和Gecko DOM implementationscreateRange( )方法在document对象上定义。有了这些知识,getRng( )的修复就变成了:

代码语言:javascript
复制
getRng : function() {
    var s = this.getSel();
    var rng;        

    if(!s) { return null; } 
    if (s.rangeCount > 0) {
        rng = s.getRangeAt(0);
    } else if ( typeof s.createRange === 'undefined' ) {
        rng = document.createRange();
    } else {
        rng = s.createRange(); 
    }       
    return rng;
 },

我在为一个即将到来的项目评估许多富文本编辑器时遇到了这个问题,我不得不用nicEdit创建一个示例页面。

票数 24
EN

Stack Overflow用户

发布于 2011-10-04 04:22:09

票数 16
EN

Stack Overflow用户

发布于 2011-08-03 19:09:50

相同的代码,用nicEdit current design编写:

代码语言:javascript
复制
getRng : function() {
    var s = this.getSel();
    if(!s) { return null; }
    return (s.rangeCount > 0) ? s.getRangeAt(0) : (typeof s.createRange == 'undefined') ? document.createRange() : s.createRange();
},
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5374629

复制
相关文章

相似问题

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