php - CKEDITOR 和 javascript 函数出现问题

标签 php javascript function replace ckeditor

我在 javascript 中完成了一个函数,可以通过表达式更改一些缩写,所有这些都在 javascript 和 onkeyup 中。

我遇到的麻烦是这不适用于使用插件 CKEDITOR 的文本区域,

当我禁用 ckeditor 时,它工作正常。

这是我的代码:

<script type="text/javascript">
var abbreviations = {
        "ABS": "Le débiteur est absent, nous le relançons par courrier. Nous agendons également une visite domiciliaire s'il s'avérait que ce dernier restait sans réponse.",




};

function abbrReplace(el, abbrs) {
    if (!el || !abbrs) {
        return false;
    }
    else {
        var val = el.value,
            words = val.split(/\s/);
        for (var i = 0, len = words.length; i<len; i++) {
            if (abbrs[words[i]]) {
                words[i] = abbrs[words[i]];
            }
        }
        return words.join(' ');
    }
}

document.getElementById("suivi").onkeyup = function(){
    this.value = abbrReplace(this, abbreviations);
};


</script>

我真的迷失了,我已经尝试了很多方法来完成这项工作。

任何形式的帮助将不胜感激。

亲切的问候。

SP。

最佳答案

CKeditor 用 CKeditor 实例替换您的文本区域,然后忽略该文本区域。您正在寻找的是将您的函数绑定(bind)到 CKeditor 的 keyup 事件并更改编辑器的内容。合并 add code for event listener for keypress in ckeditor 上的答案和 How to find and replace text in CKEditor using Javascript?结果是这样的:

var abbreviations = ...;

function abbrReplace(el, abbrs) {
    ...changed to accept a piece of text instead of an element...
}

CKEDITOR.on('instanceCreated', function(e) {
    e.editor.on('contentDom', function() {
        e.editor.document.on('keyup', function(event) {
            // keyup event in ckeditor
            old_text = e.editor.getData();
            new_text = abbrReplace(old_text, abbreviations);
            e.editor.setData(new_text);
        });
    });
}); 

CKEDITOR.replace('suivi');

我已经对此进行了测试,它还不能完美地工作,但它应该为您指明正确的方向。

关于php - CKEDITOR 和 javascript 函数出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13157840/

相关文章:

javascript - 如何向 append 元素添加函数

javascript:方法的单独功能或嵌入对象中?

php - 如何解决此内部服务器错误

javascript - 如何在 Angular 中正确实现 DOM 操作?

javascript - jQuery:明智地滚动div部分

javascript - 静态社交(分享按钮)链接的优点和缺点?

postgresql - 将laSTLogin保存在表中

php - MySQL - 输出时在与关系表连接的表上获取重复行

php - 如何组合两个 mysql 查询以在一个下拉列表中显示其结果

Java SHA1withDSA 到 PHP,可转换吗?