这是一个两个问题:
Q1)我有以下代码:
http://jsfiddle.net/anik786/L8kb4nes/1/
这是HTML:
<form action="javascript:void(0)">
<textarea id="editor1" name="editor1" cols="80" rows="10">
Example Text
</textarea>
<button id="btnOutput">Get Data</button>
</form>
<div id="output"></div>
和JS:
var editor = CKEDITOR.replace('editor1', {
allowedContent:
'h1 h2 h3 p blockquote strong em;' +
'a[!href];' +
'img(left,centre, right)[!src,alt,width,height];' +
'figure figcaption;' +
'table tr th td caption;' +
'span{!font-family};' +
'span{!color};' +
'span(!marker);' +
'span(!math-tex);' +
'del ins'
});
$("#btnOutput").on("click", function(){
$('#output').text(editor.getData());
});
如果我进入源模式并输入无效的内容,例如:&lt; h4&gt; Hi&lt; / h4&gt;然后返回WYSIWIG然后单击“获取数据”按钮,然后h4标签变为输出中的p标签。返回源模式时也会对此进行验证。这与预期的一样,因为h4不在允许的内容中。
但是,如果我进入源模式并写入&lt; h4&gt; Hi&lt; / h4&gt;然后直接点击“获取数据”按钮(即不切换回所见即所得),h4标签出现在输出上。
我该如何解决这个问题?
Q2)内容过滤器似乎不适用于脚本标记。喜欢
<script src="bad.js></script>
当来回切换wyswig时,此标签不会消失。为什么呢?
答案 0 :(得分:0)
我刚刚找到了实现这一目标的“好方法”。
我将输出按钮代码更改为:
CKEDITOR.instances.editor1.setMode( 'wysiwyg', function() {
$('#output').text(editor.getData());
} );
这实际上迫使编辑器更改为wyswig模式,然后获取数据。但是我想避免这种情况,因为如果他们的编辑只是自动更改模式,这可能会激怒用户!