【问题标题】:What makes editors paste data on textarea as html -like in rich wysiwyg editors?是什么让编辑器将 textarea 上的数据粘贴为 html -like 在丰富的所见即所得编辑器中?
【发布时间】:2012-11-29 01:35:16
【问题描述】:

我想从网站复制/粘贴 html 并将它们存储在 mysql 数据库中。为此,我检查了 CKEditor,它允许我粘贴 html,甚至是 word 文档,并为它生成 html 代码。由于我想要的只是将粘贴的数据“生成”为 html,而不是使用像 CKEditor 这样的完整所见即所得编辑器,我想编写一些代码(可能使用 jquery)来将粘贴的数据转换为具有 html 标记和格式。

要实现这个功能,这些在线编辑器是做什么的?他们如何将剪贴板数据转换为 html 代码?为什么我在此处将 html 格式的文本或 div 或按钮粘贴到此 textarea 并在所见即所得编辑器上粘贴图像和适当大小的 div 时只得到文本?

编辑器是否访问剪贴板数据并对其进行操作?剪贴板是否以有组织的方式保存格式数据,允许“CKEditor”或其他人对其进行操作?

这可以用 jQuery 完成吗?还是我们也需要服务器端代码?

如果您能对这个主题有所了解,我将不胜感激。我只想知道方法,以便我可以为它编写适当的代码。

供参考:http://ckeditor.com/demo

【问题讨论】:

  • 我想你可以用 contenteditable="true" 将 HTML 粘贴到一个元素中,然后用一些脚本从中获取内部 HTML。

标签: javascript html wysiwyg


【解决方案1】:

这是一个可在 Chrome、IE9 和 Safari 中运行的粗略演示:http://jsfiddle.net/SN6PQ/2/

<div contenteditable="true" id="paste-target">Paste Here</div>​

$(function(){
    $("#paste-target").on("paste", function(){
        // delay, or else innerHTML won't be updated
        setTimeout(function(){

            // option 1 - for pasting text that looks like HTML (e.g. a code snippet)
            alert($("#paste-target").text());

            // option 2 - for pasting actual HTML (e.g. select a webpage and paste it)
            alert($("#paste-target").html());
        },100);
    });        
});​

不确定这是否是您所追求的,但它会在粘贴时提醒 HTML。请记住,内容可编辑元素可能会更改粘贴时的标记。

【讨论】:

  • 谢谢,这正是我所追求的……所以有一个 jquery 的粘贴事件……最有趣!
  • 很高兴它有效。如果您想完善我的示例,则有很多关于粘贴的问题,例如stackoverflow.com/questions/686995/…
  • 啊,其实我在研究的时候看到过那个帖子,但是没看懂,它也粘贴为html。顺便说一句,我已经查找了 javascript 粘贴事件的兼容性,这里是:cutcopypaste
猜你喜欢
  • 1970-01-01
  • 2012-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多