我有一个与 CKEditor 的对话框有关的特殊问题。我设法将一个 php 文件(包含数据表)嵌入到对话框窗口中。然后用户可以选择将插入到 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 ajax 会失败:
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 对话框窗口显示:“未捕获的类型错误:无法调用未定义的方法 'charAt'”。而且两个 HTML 看起来仍然相同。)
现在使用该对象没有问题,但是我似乎无法从创建的#document 中获得响应。我尝试过变量和隐藏字段,但无法从“父”文档中访问它们。
有人对 CKEditor 这方面有经验吗?
(如果我没有以适当的方式解释所有内容,我很抱歉..)