我试图在firefox中键入几行,并希望使用getContent {format:text}来仅获取内容。
Here is the content: (I have three lines and each start with the leftmost postion)
"text me if
there is
a chance"
It works in chrome that it gives the following format when running getContent.
...
<body>
text me if
there is
a chance
</body>
...
However in firefox I got:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
text me ifthere isa chance
</body>
</html>
It seems to strip off the line break. Could someone help on this?
答案 0 :(得分:2)
在TinyMCE 4+中,没有选项可以禁用剥离换行符。对我来说,一个非常脏的黑客工作 - 只需在初始化TinyMCE之前用<br>
标签替换换行符:
//imagine that your textarea is called textarea#message
var a = $("textarea#message").val();
a = a.replace(/\n/g, '<br />');
$("textarea#message").val(a);
如果您之后需要没有<br>
的文字,但有换行符,只需应用相同的转换,反之亦然:
var a = $("textarea#message").val();
a = a.replace(/<br\s*[\/]?>/gi, "\n");
$("textarea#message").val(a);
答案 1 :(得分:0)
为了确保不会发生这种情况,您应该使用<br>
标记而不是常规行brea(ctrl + return)。这是html代码中的默认过程。
答案 2 :(得分:0)
我使用DOMParser()来解决它。
tinymceContextValue = tinymce.get('abstract1').getContent({format: 'html'});
var doc = new DOMParser().parseFromString(tinymceContextValue ,'text/html');
tinymceContextValue = doc.body.textContent;
在这种情况下,我们仍然可以保留换行符。但请注意,不要更改tinymce配置以启用
。它无法使用它。
答案 3 :(得分:0)
参加聚会可能有点晚了,但我遇到了同样的问题。似乎firefox在文本中的换行符有一些插入到textarea中的问题。我的解决方案是这样的:
var text = text.replace("\r\n", "\\r\\n");
我猜FireFox只是Slash的忠实粉丝......
对于完整的解决方案,我使用了以下代码,它不使用格式:text,而是格式:html首先由DOMParser解析:
var text = editor.getContent({ format: 'html' });
var doc = new DOMParser().parseFromString(text, 'text/html');
text = doc.body.textContent.replace("\r\n", "\\r\\n");
如果您仍希望在代码中显示标签以及链接作为标签内的文本,请在DOMParser之前添加此行:
text = text.replace(/<a.*href="(.*?)".*>(.*?)<\/a>/gi, ' $2: $1 ');
哪个会改变:
到此:
干杯!