【问题标题】:javascript copy text from element into textareajavascript将文本从元素复制到textarea
【发布时间】:2013-08-15 13:05:39
【问题描述】:

我正在使用 CKEditor Inline mod,我正在尝试将其保存到数据库中。我有一个关于将文本从元素复制到文本区域的想法。我有元素 div#textToBeSaved,我想立即将此元素中的所有文本复制到名称为 content 的 textarea 中。

标题:

  <script type="text/javascript" src="/administration/aditional/ckeditor/ckeditor.js"></script>
  <script type="text/javascript">
    setTimeout(function() { copyText(); },500);

    function copyText() {    
        var data = CKEDITOR.instances.textToBeSaved.getData();
        document.getElementsByName("content")[0].value = data;
    }
  </script>

文字:

    <div id="textToBeSaved">
     <div id="content-full">
      <div class="container">
       {P_CONTENT}
      </div>
     </div>
    </div>
    <textarea name="content"></textarea>

{P_CONTENT} 在 PHP 中解析。例如{P_CONTENT} 返回&lt;p contenteditable='true'&gt;hello world&lt;/p&gt;

我只需要将元素 #textToBeSaved 中的所有内容与实际数据一起保存到数据库中。

感谢您的帮助。

【问题讨论】:

  • 请提供一些您尝试过或遇到问题的示例代码。
  • 您好,感谢您的回答。 &lt;div id="textToBeSaved"&gt; &lt;div id="content-full"&gt; &lt;div class="container"&gt; &lt;p&gt;Hello world&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;textarea&gt;&lt;p&gt;Hello world&lt;/p&gt;&lt;/textarea&gt; 如果我将任何内容编辑到元素
    中(使用 CKEditor 内联编辑),我将立即在我的 textarea 中看到相同的内容。
  • 您的意思是您希望 textToBeSaved 的 HTML 内容在用户键入时实时复制到#content?
  • 是的。而#content 是文本区域。
  • 查看我的更新答案。

标签: php javascript jquery ckeditor inline


【解决方案1】:

如果您的 CKEditor 的 id 为 textToBeSaved,那么此代码将为您获取 CKEditor 的内容并将它们复制到您的 content 元素中:

<script>
    setTimeout(function() { copyText(); },500);

    function copyText() {    
        var data = CKEDITOR.instances.textToBeSaved.getData();
        document.getElementsByName("content")[0].value = data;
    }
</script>

http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getData

【讨论】:

  • 感谢您的回答,但我的 textarea 仍然没有改变。
  • 编辑您的问题以提供您的完整代码,包括您如何初始化 CKEditor。
  • 试试setTimeout(function() { copyText(); },500);
  • 实际上,您甚至都没有初始化 CKEditor... CKEditor 正在渲染吗?
  • 还是不行。 CKeditor 正在工作。我可以编辑文本,但我需要将其保存到我的文本区域中。
【解决方案2】:

顺便说一下 CKEDITOR.instances.textToBeSaved.getData();未定义。我认为这是因为元素 textToBeSaved 未定义为可编辑。但我不能将其标记为可编辑,因为我不想让这个元素中的所有内容都可编辑。这是一张图片LINK

有什么想法吗?

【讨论】:

    【解决方案3】:

    您需要使用正在编辑的元素的 id(具有 contentEditable 属性的元素)。如果你参考别的东西,很明显它是行不通的。

    【讨论】:

    • 我做到了,但我的 textarea 中的内容没有更新。可能我会等待 CKSource mod 的更新,以便更好地使用内联模式保存内容。
    • 我不认为 CKSource 需要在这里做任何事情,因为你想要它现在很容易做到,你只需要修复你的 javascript 来处理你的标记。
    猜你喜欢
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 2014-08-22
    相关资源
    最近更新 更多