Chrome 中的 NicEdit 错误

发布于 2024-10-24 03:42:52 字数 565 浏览 1 评论 0原文

我在我的网站上使用 NicEdit WYSIWYG 插件。

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

Uncaught TypeError: Object  has no method 'createRange'

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

getRng : function() {
        var s = this.getSel();
        if(!s) { return null; }
        return (s.rangeCount > 0) ? s.getRangeAt(0) : s.createRange();
}

NicEdit 作为一个项目似乎已经死了,这就是为什么我在这里而不是在 NicEdit 论坛上问这个问题。我希望有人知道解决这个问题的“快速解决方案”。在所有其他方面,NicEdit 都适合我,所以我还不愿意切换到不同的 WYISWYG 插件...

(提前)感谢您的帮助。

I'm using the NicEdit WYSIWYG plugin on my site.

It's come to my attention that when NicEdit is instantiated in Chrome, the following Javascript error is generated:

Uncaught TypeError: Object  has no method 'createRange'

This doesn't stop the plugin from working, but I would like to prevent this if possible. Here is the offending method:

getRng : function() {
        var s = this.getSel();
        if(!s) { return null; }
        return (s.rangeCount > 0) ? s.getRangeAt(0) : s.createRange();
}

NicEdit seems to be pretty much dead as a project, which is why I am asking this question here instead of over at the NicEdit forums. I am hoping that someone knows of a 'quickfix' to this problem. In all other respects NicEdit works well for me, so I am reluctant to change over to a different WYISWYG plugin just yet...

Thanks (in advance) for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

日暮斜阳 2024-10-31 03:42:52

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

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 创建一个示例页面。

The problem is that the implementation of the selection object for Webkit does not define a createRange( ) method. That method seems to be specific to Internet Explorer. For Webkit and Gecko DOM implementations, the createRange( ) method is defined on the document object. With this knowledge, the fix for getRng( ) becomes:

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;
 },

I encountered this as I was evaluating a number of rich text editors for an upcoming project and had to create a sample page with nicEdit.

粉红×色少女 2024-10-31 03:42:52

相同的代码,以 nicEdit 当前设计编写:

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();
},

Same code, written in nicEdit current design:

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();
},
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文