从 TinyMCE 文本区域获取值

Posted

技术标签:

【中文标题】从 TinyMCE 文本区域获取值【英文标题】:Getting the value from a TinyMCE textarea 【发布时间】:2011-09-26 08:58:16 【问题描述】:

我的网站有一个新闻编辑器,我正在使用 TinyMCE。我想要做的是有一个按钮(在 TinyMCE 编辑器本身之外),我可以单击该按钮以扫描文本区域中的任何图像,然后将这些图像列为选项以用于所述新闻文章的缩略图。

要了解我的意思,请在此处查看此链接:https://docs.google.com/leaf?id=0B05m73kzudwPNzUwZjkyNmItYjZkMy00NTdlLTlkNDctOGRhYThjMzNjNTM5&hl=en_US

我的问题是当文本区域中有文本时 document.getElementById('NewsArticle').value 没有返回任何内容

另一个潜在的问题是文本区域中显示的不是实际代码,而是图像等,所以我不确定它是否会首先工作,但是自从提交表单时数据[新闻] [article] 值重新变成文本,我认为可能有机会。

如果有人知道如何获取 tinyMCE 文本区域的内容或代码,或者有更好的解决方案,我很想听听

【问题讨论】:

检查此答案以将 tinymce 的值传输到原始 textarea。***.com/a/69883895/12910765 【参考方案1】:

TinyMce 有 an api 用于从编辑器访问内容。

此代码将从活动编辑器中获取 html

// Get the HTML contents of the currently active editor
tinyMCE.activeEditor.getContent();

// Get the raw contents of the currently active editor
tinyMCE.activeEditor.getContent(format : 'raw');

// Get content of a specific editor:
tinyMCE.get('content id').getContent()

【讨论】:

非常感谢,我觉得一定有办法! 说真的,你是个救命稻草【参考方案2】:

使用以下语法,这将从您的输入文本区域中删除不需要的字符....

(((tinyMCE.get('YourTextAreaId').getContent()).replace(/(&nbsp;)*/g, "")).replace(/(<p>)*/g, "")).replace(/<(\/)?p[^>]*>/g, "");

【讨论】:

我会将它包装在一个函数中并将文本传递给它,但 +1 是为了努力。【参考方案3】:

试试

window.parent.tinymce.get('contentID').getContent();

由于某种原因,标准的tinymce.get() 调用对我不起作用,所以我尝试了这个并且它起作用了。 :)

【讨论】:

非常感谢。我一直在与多个编辑器作斗争,您的这段代码对我来说非常有效!【参考方案4】:
var temp = tinymce.get('textAreaName').save();
console.log(temp);

var temp =tinymce.get('textAreaName').getContent();
console.log(temp);

【讨论】:

【参考方案5】:

可能你有类似的东西

<form>
  <textarea id="myArea">Hello, World!</textarea>
</form>

你应该简单地添加如下

<form method="post">
  <textarea id="myArea" name="value">Hello, World!</textarea>
  <input type="submit">
</form>

您可以在 myArea var 下使用 php 捕获数据。

【讨论】:

以上是关于从 TinyMCE 文本区域获取值的主要内容,如果未能解决你的问题,请参考以下文章

TinyMCE 在动态生成的文本区域上不可点击和编辑

Tinymce 文本区域通过拖动底部状态栏调整大小

如何使用 jquery 将 html 加载到 TinyMCE 文本区域中

如何在 TinyMCE 文本区域中设置初始文本?

ASP.NET CodeBehind 无法识别 TinyMCE 文本区域更改

带有 TinyMCE 的文本区域。提交按钮不起作用