0

我在使用 javascript 和 ckeditor 时遇到了一些麻烦。

我已经完成了一个函数,它将在 textarea 中用它们的表达式替换所有缩写词,例如 tel -> 电话等....

问题在于ckeditor。在普通的 textarea 上,此功能可以正常工作,如下所示:

var abbreviations = {
    <?php $rqt="SELECT * FROM `glossaire` WHERE `id_company` ='".$societe['id']."'";
    $result=mysql_query($rqt);
    while($data=mysql_fetch_assoc($result))
    {?>
    "<?php echo ($data['libelle']) ; ?>": "<?php echo ($data['texte']) ; ?>",
     <?php } ?>    



};

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);
};

所以在ckeditor上,我试过这个:CKEDITOR.instances.commentaire.insertText('abbreviations');

像那样:

var abbreviations = {
    <?php $rqt="SELECT * FROM `glossaire` WHERE `id_company` ='".$societe['id']."'";
    $result=mysql_query($rqt);
    while($data=mysql_fetch_assoc($result))
    {?>
    "<?php echo ($data['libelle']) ; ?>": "<?php echo ($data['texte']) ; ?>",
     <?php } ?>    



};

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 = CKEDITOR.instances.commentaire.insertText('abbreviations');
};

我真的迷路了,在ckeditor上它不起作用,

我想我做错了什么,但是我不知道如何纠正它。

任何帮助将不胜感激。

亲切的问候。

SP。

4

1 回答 1

1
于 2012-11-01T09:05:04.567 回答