更改 ckeditor4 的编辑器内容
Change editor contents of ckeditor4
我的要求是改变里面编辑器内容部分的样式
HTML
<div id="cke_1_contents" class="cke_contents cke_reset">
<iframe src(unknown) ...> .. </iframe>
</div>
在 div 中,编辑器 div 中有一个 iframe,这使我无法使用 css 更改 iframe 中 DOM 元素的样式。
我试图在 jQuery 的帮助下进行更改,但无法做到。所以我创建了一个名为 editor.html 的新页面,我在其中复制了 <iframe> ..... </iframe>
中提供的所有内容,并在 jquery 的帮助下,我更改了 iframe 的 src 属性。
现在,当我点击 ckeditor4 工具栏上的任何按钮时,我遇到了一个问题,然后它给出 javascript 错误“Uncaught TypeError: Cannot read 属性 'getSelection' 未定义”。
请告诉我如何自定义 <div id="cke_1_contents"
的内部内容并通过工具栏按钮定位此区域?
我正在添加更多信息。请看下图:
我从红色矩形中选择的这段代码中复制了所有内容,并写入 editor.html 页面并使用以下 jquery,我用我自己的代码替换了。我写了以下 jQuery:
CKEDITOR.on('instanceReady', function() {
htmlEditor = '<span id="cke_52" class="cke_voice_label">Press ALT 0 for help</span>';
htmlEditor += '<iframe src="editor.html" frameborder="0" class="cke_wysiwyg_frame cke_reset" style="width: 100%; height: 100%;" title="Rich Text Editor, editor1" aria-describedby="cke_52" tabindex="0" allowtransparency="true"></iframe>';
$('#cke_1_contents').html(htmlEditor);
});
而且我可以更改 css 编辑器部分,而不是工具栏,只能更改 editor.html 页面中的编辑器部分。但是有了这个,我遇到了一个问题,每当我点击工具栏上的任何按钮,如插入图像、粗体斜体等,它都不会针对用我自己的 htmlEditor 在 jquery 的帮助下替换的编辑器,它会给出错误“Uncaught TypeError: Cannot read 属性 'getSelection' of undefined”。
现在,我需要,
(i) 我应该能够更改 ckeditor4 的编辑器部分的 css
(ii) 或者,如果我用自己的 html 更改了编辑器,并且像上面那样在 iframe 中使用所有 divs 和 类 的精确副本,但 url 除外,我应该能够将工具栏按钮定位到我自己创建的编辑器。
访问 iframe 文档见下文,演示 jsfiddle
<script src="//cdn.ckeditor.com/4.11.1/standard/ckeditor.js"></script>
<textarea id="editor"></textarea>
<script>
var editor = CKEDITOR.replace('editor');
editor.setData('Hello world!');
CKEDITOR.on("instanceReady", function(event) {
var iframe = document.querySelector('#cke_1_contents iframe');
var cke_doc = iframe.contentDocument || iframe.contentWindow.document;
cke_doc.body.style = `background-color: yellow;
font-size: 28px;
text-shadow: 2px 2px #b4bd21;`
});
</script>
我的要求是改变里面编辑器内容部分的样式
HTML
<div id="cke_1_contents" class="cke_contents cke_reset">
<iframe src(unknown) ...> .. </iframe>
</div>
在 div 中,编辑器 div 中有一个 iframe,这使我无法使用 css 更改 iframe 中 DOM 元素的样式。
我试图在 jQuery 的帮助下进行更改,但无法做到。所以我创建了一个名为 editor.html 的新页面,我在其中复制了 <iframe> ..... </iframe>
中提供的所有内容,并在 jquery 的帮助下,我更改了 iframe 的 src 属性。
现在,当我点击 ckeditor4 工具栏上的任何按钮时,我遇到了一个问题,然后它给出 javascript 错误“Uncaught TypeError: Cannot read 属性 'getSelection' 未定义”。
请告诉我如何自定义 <div id="cke_1_contents"
的内部内容并通过工具栏按钮定位此区域?
我正在添加更多信息。请看下图:
我从红色矩形中选择的这段代码中复制了所有内容,并写入 editor.html 页面并使用以下 jquery,我用我自己的代码替换了。我写了以下 jQuery:
CKEDITOR.on('instanceReady', function() {
htmlEditor = '<span id="cke_52" class="cke_voice_label">Press ALT 0 for help</span>';
htmlEditor += '<iframe src="editor.html" frameborder="0" class="cke_wysiwyg_frame cke_reset" style="width: 100%; height: 100%;" title="Rich Text Editor, editor1" aria-describedby="cke_52" tabindex="0" allowtransparency="true"></iframe>';
$('#cke_1_contents').html(htmlEditor);
});
而且我可以更改 css 编辑器部分,而不是工具栏,只能更改 editor.html 页面中的编辑器部分。但是有了这个,我遇到了一个问题,每当我点击工具栏上的任何按钮,如插入图像、粗体斜体等,它都不会针对用我自己的 htmlEditor 在 jquery 的帮助下替换的编辑器,它会给出错误“Uncaught TypeError: Cannot read 属性 'getSelection' of undefined”。
现在,我需要, (i) 我应该能够更改 ckeditor4 的编辑器部分的 css (ii) 或者,如果我用自己的 html 更改了编辑器,并且像上面那样在 iframe 中使用所有 divs 和 类 的精确副本,但 url 除外,我应该能够将工具栏按钮定位到我自己创建的编辑器。
访问 iframe 文档见下文,演示 jsfiddle
<script src="//cdn.ckeditor.com/4.11.1/standard/ckeditor.js"></script>
<textarea id="editor"></textarea>
<script>
var editor = CKEDITOR.replace('editor');
editor.setData('Hello world!');
CKEDITOR.on("instanceReady", function(event) {
var iframe = document.querySelector('#cke_1_contents iframe');
var cke_doc = iframe.contentDocument || iframe.contentWindow.document;
cke_doc.body.style = `background-color: yellow;
font-size: 28px;
text-shadow: 2px 2px #b4bd21;`
});
</script>