强制CKEditor从磁盘加载HTML文件

强制CKEditor从磁盘加载HTML文件,ckeditor,Ckeditor,我正在尝试使用CKEditor编辑相当长的HTML文件。我需要编辑一点底层HTML,但是搜索和替换插件在底层代码上不起作用。我想通过键盘快捷键或宏自动完成我反复做的事情 例如,我反复需要更改特定div类的名称——例如,从“todo”更改为“done” ..div class=“todo”..====>。。。。div class=“完成” 我现在通过使用自动热键宏来实现鼠标移动和鼠标点击的自动化,并切换到源代码模式和退出源代码模式,但这是非常笨拙和不可靠的。因为我每天都会对一个显示文件的30个部分

我正在尝试使用CKEditor编辑相当长的HTML文件。我需要编辑一点底层HTML,但是搜索和替换插件在底层代码上不起作用。我想通过键盘快捷键或宏自动完成我反复做的事情

例如,我反复需要更改特定div类的名称——例如,从“todo”更改为“done”

..div class=“todo”..====>。。。。div class=“完成”

我现在通过使用自动热键宏来实现鼠标移动和鼠标点击的自动化,并切换到源代码模式和退出源代码模式,但这是非常笨拙和不可靠的。因为我每天都会对一个显示文件的30个部分执行此操作,所以我希望它能够快速而健壮。我想使用Python或Autohotkey处理底层文件。所以我的问题是:当底层文件发生更改时,我如何自动让CKEditor进行更新,即从磁盘重新加载文件


我们的目标是通过一次击键调用Python或AHK,使用它们对文件进行更改,然后强制CKE更新显示(“完成”通过更改该部分的背景颜色来显示自己)。

Javascript无法直接从光盘读取文件。(手动选择除外,例如) 所以需要使用服务器端语言,并在页面加载或使用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

更新: 您需要将
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>

$(文件)。就绪(
$.ajax({
url:“/path/to/your/file.html”,
async:false,
成功:功能(结果){
CKEDITOR.instances[“editor1”].setData(结果);
}
}));

这看起来很有用。我处理的总是同一个文件,在同一个位置。所以,如果我可以在index.html加载或重新加载时调用它,就可以了。我将进行实验。到目前为止,加载该文件没有运气。可能是因为我不确定在哪里加载。我尝试的是将您的jquery代码放入其中,然后输入所需文件的正确路径以及实例的名称(“editor1”)。再次查看您的消息文本,我只需要“在页面加载时获取文件内容”——如果有帮助的话。@HarryBinswanger我更新了答案,并可能实现了这一点。我希望我的工作对你有用。如果没有,请提供index.html的源代码(这样我就可以看到有问题了),非常感谢您的更新。是的,我在做这些替换,是的,editor1是我的编辑器实例,但是我对js和jquery太无知了,所以我打算雇一个菲律宾程序员来做。
CKEDITOR.replace("ckeditor", { allowedContent: true, });

CKEDITOR.on( 'instanceReady', function( evt ) {      
    $(CKEDITOR.instances["ckeditor"].window.$.document).find('.todo').removeClass( "todo" ).addClass( "done" ); 
})
<script>
$( document ).ready(  
    $.ajax({
        url: "/path/to/your/file.html",
        async: false,
        success: function (result){
            CKEDITOR.instances["editor1"].setData(result);
        }
    }));
</script>