CKEDITOR - 未捕获的错误:元素不支持指定的元素模式:“元”
Posted
技术标签:
【中文标题】CKEDITOR - 未捕获的错误:元素不支持指定的元素模式:“元”【英文标题】:CKEDITOR - Uncaught Error: The specified element mode is not supported on element: "meta" 【发布时间】:2016-02-22 17:53:25 【问题描述】:当我尝试在同一页面中使用 2 个编辑器时出现此错误...
我使用 php 从数据库加载内容。如果设置了 $_POST,我会从特定的 $_POST 值加载内容。
该代码仅适用于 1 个 textarea-ckeditor,当我使用 2 个不同的编辑器时出现此错误:未捕获错误:元素:“元”不支持指定的元素模式。
<div class="form_group col-md-12 col-sm-12 col-xs-12">
<label class="formlabel">Body</label><br>
<?php if(isset($_POST['body'])) ?>
<textarea class="ckeditor" name="body"> <?php echo $_POST['body']; ?> </textarea>
<script>
CKEDITOR.replace( 'body' ,
filebrowserBrowseUrl : '../ResposiveFilemanager/filemanager/dialog.php?type=2&editor=ckeditor&fldr=',
filebrowserUploadUrl : '../ResposiveFilemanager/filemanager/dialog.php?type=2&editor=ckeditor&fldr=',
filebrowserImageBrowseUrl : '../ResposiveFilemanager/filemanager/dialog.php?type=1&editor=ckeditor&fldr='
);
</script>
<?php else ?>
<textarea class="ckeditor" id="ckeditorb" name="body" value="<?php echo nl2br(htmlspecialchars($art['BODY']));?>" ></textarea>
<?php $body_content=json_encode(utf8_encode($art['BODY'])); ?>
<script>
CKEDITOR.replace( 'body' ,
filebrowserBrowseUrl : '../ResposiveFilemanager/filemanager/dialog.php?type=2&editor=ckeditor&fldr=',
filebrowserUploadUrl : '../ResposiveFilemanager/filemanager/dialog.php?type=2&editor=ckeditor&fldr=',
filebrowserImageBrowseUrl : '../ResposiveFilemanager/filemanager/dialog.php?type=1&editor=ckeditor&fldr='
);
CKEDITOR.instances.ckeditorb.setData(<?php echo $body_content; ?>, function()
this.checkDirty(); // true
);
</script>
<?php ?>
<?php if(isset($error['body']) && !empty($error['body']))
echo $error['body'];
?>
</div>
<div class="form_group col-md-12 col-sm-12 col-xs-12">
<label class="formlabel">Description</label><br>
<?php if(isset($_POST['description'])) ?>
<textarea class="ckeditor" name="description" id="descripcion_1"> <?php echo $_POST['description']; ?> </textarea>
<?php $content=json_encode(utf8_decode($_POST['DESCRIPTION'])); ?>
<script>
CKEDITOR.replace( 'description' ,
filebrowserBrowseUrl : '../ResposiveFilemanager/filemanager/dialog.php?type=2&editor=ckeditor&fldr=',
filebrowserUploadUrl : '../ResposiveFilemanager/filemanager/dialog.php?type=2&editor=ckeditor&fldr=',
filebrowserImageBrowseUrl : '../ResposiveFilemanager/filemanager/dialog.php?type=1&editor=ckeditor&fldr='
);
CKEDITOR.instances.descripcion_1.setData(<?php echo $content; ?>, function()
this.checkDirty(); // true
);
</script>
<?php else ?>
<textarea class="ckeditor" id="descripcion_2" name="description" value="<?php echo $art['DESCRIPTION']; ?>" ></textarea>
<?php $content=json_encode(utf8_decode($art['DESCRIPTION'])); ?>
<script>
CKEDITOR.replace( 'description' ,
filebrowserBrowseUrl : '../ResposiveFilemanager/filemanager/dialog.php?type=2&editor=ckeditor&fldr=',
filebrowserUploadUrl : '../ResposiveFilemanager/filemanager/dialog.php?type=2&editor=ckeditor&fldr=',
filebrowserImageBrowseUrl : '../ResposiveFilemanager/filemanager/dialog.php?type=1&editor=ckeditor&fldr='
);
CKEDITOR.instances.descripcion_2.setData(<?php echo $content; ?>, function()
this.checkDirty(); // true
);
</script>
<?php ?>
<?php if(isset($error['description']) && !empty($error['description']))
echo $error['description'];
?>
</div>
【问题讨论】:
【参考方案1】:我遇到了同样的问题。它与 textarea: description 的名称有关,因为有一个同名的元标记。一旦你更改了 textarea 的名称,它就会起作用。
【讨论】:
【参考方案2】:ckeditor 插件会读取名称为 description 的标签。如果您有任何带有描述名称的元标记,请删除 ckeditor 将在您的带有描述名称的文本区域上工作的元标记。
【讨论】:
以上是关于CKEDITOR - 未捕获的错误:元素不支持指定的元素模式:“元”的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的语法错误:在严格模式之外尚不支持块范围的声明(let、const、函数、类)[重复]