TinyMCE - 设置编辑器内容

时间:2012-03-22 00:17:36

标签: javascript jquery tinymce

我正在为我的TinyMCE编辑器构建一个自动保存功能。

使用jQuery,我已将编辑器的内容保存到我的数据库,现在想要将内容重新加载到编辑器中。我在使用来自数据库的HTML中的引号(“)时遇到了麻烦。

我的代码:

var content = "<%=content%>" // Classic ASP variable containing HTML from DB
tinyMCE.activeEditor.setContent(content);

示例输出:

var content = "<p>Oh yes, from Churchill, the <em><span style="text-decoration: underline;"><strong>dog</strong></span></em>.</p>"
tinyMCE.activeEditor.setContent(content);

在变量“content”中,样式标记中有双引号导致JS错误。我该如何解决这个问题?我用单引号替换引号还是使用转义或编码函数?请帮忙。

4 个答案:

答案 0 :(得分:2)

VBScript具有Javascript之类的功能(如果您使用JScript作为经典asp中的默认语言,也可以使用) 查看EscapeUnEscape 以下是将服务器端变量附加到客户端js块的有效方法。

// escape on server-side, unescape with js
var content = unescape("<%= escape(content) %>");
tinyMCE.activeEditor.setContent(content);

示例输出:

var content = unescape("%3Cp%3EOh%20yes%2C%20from%20Churchill%2C%20the%20%3Cem%3E%3Cspan%20style%3D%22text-decoration%3A%20underline%3B%22%3E%3Cstrong%3Edog%3C/strong%3E%3C/span%3E%3C/em%3E.%3C/p%3E");
tinyMCE.activeEditor.setContent(content);

答案 1 :(得分:0)

如果它只是HTML(没有javascript),用单数替换双引号可能是最快的。

答案 2 :(得分:0)

str = "<span style="color:black">Text "string"</span>";
tag_pattern = /\<.*\>/m;
matches = str.match(tag_pattern);
//copy matches array and replace quotes, then use matches array to replace into original string

答案 3 :(得分:0)

除了BeaverusIVs的第一个答案,我必须添加该行

str = "<span style="color:black">Text "string"</span>";

应该是这样的

str = '<span style="color:black">Text "string"</span>';

否则字符串无效并抛出错误。