我在使用 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。