nicedit 中的第一行问题?

发布于 2024-11-27 08:13:18 字数 626 浏览 0 评论 0原文

您好,我的 nicedit 编辑器有一个小问题,

问题是

第一行不受影响!

示例:

我在文本区域框的第一行写了(asdad),

我将其标记并单击(中心对齐),

它应该转到框的中心,

请参阅此图片

在此处输入图像描述

这个问题仅在第一行..

其他工作正常

该问题仅在 Firefox 中!

我正在使用 Firefox 3.....并且我看到了这个问题!

我的代码是

<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
<script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
<textarea cols=40 rows=10></textarea>

谢谢!

Hello i have small problem with nicedit editor

the problem is

the first line is can not be affected !

example :

i writed ( asdad ) in the first line of the textarea box

i marked it and clicked on ( center align )

it's should go to the center of the box

see this picture

enter image description here

this problem is only in first line ..

others is work fine

The problem is only in firefox !

i am using firefox 3..... and i see this problem !

my code is

<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
<script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
<textarea cols=40 rows=10></textarea>

Thank you !

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

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

发布评论

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

评论(2

美男兮 2024-12-04 08:13:18

我也有这个问题。而且我们并不孤单:) 这是 nicEditor 的 bug http://nicedit.com/forums/viewtopic.php?f=4&t=364&p=848&#p848。而且看起来还没有修复。

我已经通过使用 TinyMCE-editor 解决了这个错误:) 如果您没有使用 nicEditor,我建议您查看 TinyMCE。

我希望这会有所帮助。

I also had that problem. And we are not alone:) It is nicEditor's bug http://nicedit.com/forums/viewtopic.php?f=4&t=364&p=848&#p848. And looks like it isn't fixed yet.

I've solved this bug by using TinyMCE-editor :) And if you are not tied with nicEditor I would suggest to look on TinyMCE.

I hope it will be helpfull.

国粹 2024-12-04 08:13:18

我为此开发了一个解决方案。
问题是第一行不在 div 中。
这将修复它

$(document).ready(function () {
    $('.nicEdit-main').bind('DOMSubtreeModified',function(){
        nicEditFirstLinePatch();
    });
});

,并且

function nicEditFirstLinePatch(){
    function placeCaretAtEnd(el) {
    el.focus();
        if (typeof window.getSelection != "undefined"
                && typeof document.createRange != "undefined") {
            var range = document.createRange();
            range.selectNodeContents(el);
            range.collapse(false);
            var sel = window.getSelection();
            sel.removeAllRanges();
            sel.addRange(range);
        } else if (typeof document.body.createTextRange != "undefined") {
            var textRange = document.body.createTextRange();
            textRange.moveToElementText(el);
            textRange.collapse(false);
            textRange.select();
        }
    }
    textNode=$('.nicEdit-main').contents().filter(function(){ 
        return this.nodeType == 3; 
    })[0];
    $('.nicEdit-main').attr('id','toHandle');
    if(textNode){
        var newNode = document.createElement('div');
        var newNodeContent = document.createTextNode(textNode.nodeValue);
        newNode.appendChild(newNodeContent);
        var parentNode=document.getElementById('toHandle');
        parentNode.replaceChild(newNode,textNode);
        var range = document.createRange();
        range.setStart(newNode,0);  
    }
    if(document.getElementById('toHandle').children.length==1){
        placeCaretAtEnd(document.getElementById("toHandle"));
    }
}

它在 Chrome 55.0.2883.87 上运行良好。我认为它是跨浏览器的,但我不确定。但这是一个好的开始:)

I have developed a solution for this.
The problem is the first line that is not in a div.
This will fix it

$(document).ready(function () {
    $('.nicEdit-main').bind('DOMSubtreeModified',function(){
        nicEditFirstLinePatch();
    });
});

and

function nicEditFirstLinePatch(){
    function placeCaretAtEnd(el) {
    el.focus();
        if (typeof window.getSelection != "undefined"
                && typeof document.createRange != "undefined") {
            var range = document.createRange();
            range.selectNodeContents(el);
            range.collapse(false);
            var sel = window.getSelection();
            sel.removeAllRanges();
            sel.addRange(range);
        } else if (typeof document.body.createTextRange != "undefined") {
            var textRange = document.body.createTextRange();
            textRange.moveToElementText(el);
            textRange.collapse(false);
            textRange.select();
        }
    }
    textNode=$('.nicEdit-main').contents().filter(function(){ 
        return this.nodeType == 3; 
    })[0];
    $('.nicEdit-main').attr('id','toHandle');
    if(textNode){
        var newNode = document.createElement('div');
        var newNodeContent = document.createTextNode(textNode.nodeValue);
        newNode.appendChild(newNodeContent);
        var parentNode=document.getElementById('toHandle');
        parentNode.replaceChild(newNode,textNode);
        var range = document.createRange();
        range.setStart(newNode,0);  
    }
    if(document.getElementById('toHandle').children.length==1){
        placeCaretAtEnd(document.getElementById("toHandle"));
    }
}

It works fine on Chrome 55.0.2883.87. I think it's crossbrowser but I'm not sure. however it is a good start :)

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