1

我有一个 Joomla 1.5 组件,它使用对编辑器类的调用来为 Joomla 而不是文本框显示 JCE。此代码是 4 步表单的一部分,其中每个步骤都使用 ajax 加载。最后一步包含一个消息字段,用户可以在其中编写自由文本,我使用以下代码调用它:

$editor =& JFactory::getEditor();
echo $editor->display('description', $description, '100%', '150', '40', '30');

显示此步骤时,它仅显示一个简单的文本框,没有用于格式化文本等的按钮。我知道这一定是 javascript 的问题,但我很难找到如何触发文本框的正确代码要正确格式化。

这是该字段的外观: 通过 Ajax 加载的描述字段

这是从 Firebug 生成的 HTML:

<!-- Start Editor --><label aria-visible="false" style="display:none;" for="description">description_textarea</label><textarea wrap="off" class="wfEditor source" style="width:100%;height:150px;" rows="30" cols="40" name="description" id="description"></textarea><input type="hidden" value="1" name="wf3fadc9c48cabc28750287fe69c3d08c4" id="wf_description_token">
<div id="editor-xtd-buttons">
<div class="button2-left"><div class="image"><a rel="{handler: 'iframe', size: {x: 570, y: 400}}" onclick="IeCursorFix(); return false;" href="http://localhost/ugparl/site/index.php?option=com_media&amp;view=images&amp;tmpl=component&amp;e_name=description" title="Image" class="modal-button">Image</a></div></div>
<div class="button2-left"><div class="pagebreak"><a rel="{handler: 'iframe', size: {x: 400, y: 85}}" onclick="IeCursorFix(); return false;" href="http://localhost/ugparl/site/index.php?option=com_content&amp;task=ins_pagebreak&amp;tmpl=component&amp;e_name=description" title="Pagebreak" class="modal-button">Pagebreak</a></div></div>
<div class="button2-left"><div class="readmore"><a rel="" onclick="insertReadmore('description');return false;" href="http://localhost/ugparl/site/#" title="Read more">Read more</a></div></div>
</div>
<!-- End Editor -->
4

1 回答 1

1

这不是一个解决方案,而是一种解决方法。由于在显示页面之前清理了标题,因此 JCE 生成的代码丢失了。通过将以下代码添加到 ajax 调用的页面,我能够触发 JCE 初始化程序并正确显示编辑器。

$document =& JFactory::getDocument();
echo "<script type='text/javascript'>
function loadJCE() {";
echo $document->_script["text/javascript"];
echo "}
</script>";

然后我只是从加载完成函数中调用了 loadJCE。

同样,这不是最好的方法,但它对我有用。

于 2011-07-12T13:57:26.850 回答