我正在尝试使用CKEditor编辑相当长的HTML文件。我需要稍微编辑底层HTML,但搜索和替换插件不适用于底层代码。我希望通过键盘快捷键或宏来自动完成我一遍又一遍的事情。
例如,我反复需要更改特定div类的名称 - 例如,从“todo”更改为“done”。
.... div class =“todo”..... ===> .... div class =“done”....
我现在正在使用Autohotkey宏来自动执行鼠标移动和鼠标点击,以及切换到源模式和退出源模式,但这非常笨重且不可靠。由于我每天都会对显示文件的30个部分执行此操作,因此我希望它快速而强大。我想使用Python或Autohotkey来处理底层文件。所以我的问题是:当基础文件发生变化时,如何自动更新CKEditor - 即从磁盘重新加载文件?
目标是让一个按键调用Python或AHK,使用它们在文件中进行更改,然后强制CKE更新显示(“完成”通过更改该部分的背景颜色显示自己)
答案 0 :(得分:0)
Javascript无法直接从光盘读取文件。 (除了手动选择,例如https://www.html5rocks.com/en/tutorials/file/dndfiles/) 因此,需要使用服务器端语言,并在页面加载或使用AJAX请求时获取文件内容。
例如使用ajax jquery
$.ajax({
url: "/path/to/your/file.html",
async: false,
success: function (result){
CKEDITOR.instances["YOUR_INSTANCE"].setData(result)
}
});
但是,对于更改类和其他html相关的任务。可以使用javascript / jquery来处理CKEDITOR内容。
e.g。
HTML
<textarea id="ckeditor"><div class="todo">lol</div></textarea>
JS
CKEDITOR.replace("ckeditor", { allowedContent: true, });
CKEDITOR.on( 'instanceReady', function( evt ) {
$(CKEDITOR.instances["ckeditor"].window.$.document).find('.todo').removeClass( "todo" ).addClass( "done" );
})
<强>更新强>
您需要将url: "/path/to/your/file.html",
替换为要打开的文件路径。 (请同样检查我的CKEditor实例是否命名为'editor1'是否正确)并在加载jquery后放入此代码。
<script>
$( document ).ready(
$.ajax({
url: "/path/to/your/file.html",
async: false,
success: function (result){
CKEDITOR.instances["editor1"].setData(result);
}
}));
</script>