我有一个与CKEditor对话框有关的特殊问题。我设法将一个php文件(包含Datatables)嵌入到对话窗口中。然后用户可以选择一个将被插入到CKEditor中的行。使用ajax填充CKEditor对话框并获得响应
嵌入HTML到对话窗口似乎很容易:
CKEDITOR.dialog.add('tableDialog', function(editor) {
return {
title: 'parametres',
minWidth: 800,
minHeight: 500,
contents: [
{
id: 'tab-basic',
label: 'Basic Settings',
elements: [
{
type:"html",
id:"htmlPreview",
style:"width:95%;height:95%;",
html:test_HTML,
commit: function(element) {
etc..
什么有趣的是,该填充变量“test_HTML”是棘手的。其定义为HTML对象的作品完美:
test_HTML = '<object type="text/html" data="http://entseditor.etest.ee/edit/mm_insert.php" style="width:100%; height:100%"><p></p></object>';
,用jQuery阿贾克斯这样做会失败:
var request = $.ajax({
url: "http://entseditor.etest.ee/edit/mm_insert.php",
//type: "POST",
//data: {id : menuId},
dataType: "html"
});
request.done(function(msg) {
//$("#asdasd").html(msg);
test_HTML = msg ;
//alert('success' + test_HTML);
});
request.fail(function(jqXHR, textStatus) {
alert("Request failed: " + textStatus);
});
(请求是好的,并给出适当的反应到ID = 'asdasd',但CKEditor的对话窗口说:“未捕获TypeError:不能调用方法'charAt'未定义”,仍然这两个HTML似乎是相同的。)
现在没有问题使用该对象,但后来我似乎无法得到响应从创建的#文档。我尝试过变量和隐藏字段,但他们不能从'父'文档访问..
有没有人有CKEditor的这方面的经验?
(对不起,如果我没有解释正确的术语一切..)
好吧,丑陋的解决方案当然是将变量存储在cookie中(正如我应该知道的那样),所以问题就解决了。但我仍然希望有一个美丽的解决方案:) – Konservin 2013-04-08 13:13:28