TinyMCE 对现有 HTML 感兴趣

发布于 2024-12-09 14:12:06 字数 1028 浏览 0 评论 0原文

好的,我有一个 div,当您单击该 div 时,我插入一个文本区域,然后将tinyMCE 控件添加到该文本区域。好的,然后你在 wsgi 编辑器中输入并按 save 保存它。

然后保存tinyMCE编辑器的html,删除textarea和tinyMCE元素,并将tinyMCE中的html再次插入div中。

现在效果很好,当我用 HTML 单击 div 时,我希望该 HTML 显示在 tunyMCE 编辑器中。

这就是我所做的,但是一旦我单击 div,它会添加 html,然后将其删除,为什么会发生这种情况?

     // Click on the div element
     $(".editable").live("click", function(e){

        var f = $(this);
        // get the html if it is there
        html = f.html();
        // insert a textarea with a unique id
        f.html('<textarea class="item_html" id="'+ e.timeStamp +'"></textarea> ')
        f.css("height","100%")  
        //add tinyMCE control to the textarea
        tinyMCE.execCommand(
            'mceAddControl',
            false,
            f.find("textarea").attr("id")
        );  
        // if there was html insode the div clicked on, add it into the editor
        tinyMCE.execCommand(
            'mceInsertContent',
            false,
            html
        );
    });

Ok, I have a div, when you click on the div, I insert a textarea, then add tinyMCE controll to that textarea. Ok, then you type in the wsgi editor and press save to save it.

Then the html form the tinyMCE editor gets saved, and the textarea and tinyMCE element is removed and the html from tinyMCE is inserted in the div again.

That works nice, now, When I click on the div, with HTML, I want that HTML to display inside the tunyMCE editor.

This is what I have done, but once I click on the div, it adds the html, then removes it, why is this happening?

     // Click on the div element
     $(".editable").live("click", function(e){

        var f = $(this);
        // get the html if it is there
        html = f.html();
        // insert a textarea with a unique id
        f.html('<textarea class="item_html" id="'+ e.timeStamp +'"></textarea> ')
        f.css("height","100%")  
        //add tinyMCE control to the textarea
        tinyMCE.execCommand(
            'mceAddControl',
            false,
            f.find("textarea").attr("id")
        );  
        // if there was html insode the div clicked on, add it into the editor
        tinyMCE.execCommand(
            'mceInsertContent',
            false,
            html
        );
    });

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

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

发布评论

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

评论(1

雪若未夕 2024-12-16 14:12:06

该部分

// If there is html in the div clicked, add it to the mce editor
if (html) {
   tinyMCE.activeEditor.setContent('html');
}

将无法工作并抛出错误,因为编辑器实例当时尚未完全初始化。

看看我所做的更改。这里:http://jsfiddle.net/M3gNm/9/
编辑内容

The part

// If there is html in the div clicked, add it to the mce editor
if (html) {
   tinyMCE.activeEditor.setContent('html');
}

won't work and throw an error because the editor instance is not fully initialized at that time.

Have a look at the changes i made. Here: http://jsfiddle.net/M3gNm/9/
The editor content

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