我正在为我的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错误。我该如何解决这个问题?我用单引号替换引号还是使用转义或编码函数?请帮忙。
答案 0 :(得分:2)
VBScript具有Javascript之类的功能(如果您使用JScript作为经典asp中的默认语言,也可以使用)
查看Escape和UnEscape
以下是将服务器端变量附加到客户端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>';
否则字符串无效并抛出错误。