【问题标题】:Fatal error: Call to undefined method JDocumentRaw::addCustomTag() in joomla 2.5致命错误:在 joomla 2.5 中调用未定义的方法 JDocumentRaw::addCustomTag()
【发布时间】:2012-06-13 02:10:48
【问题描述】:

我有一个示例代码: 在 default.php 中:

<?php
JHTML::_('behavior.mootools'); /* to load mootools */
$ajax = "
/* <![CDATA[ */
window.addEvent('domready', function() {
    $('start_ajax').addEvent('click', function(e) {
        e.stop(); 
        var url = 'index.php?option=com_xxx&controller=xxx&task=updateAjax&format=raw';
        var x = new Request({
            url: url, 
            method: 'post', 
            onSuccess: function(responseText){
                document.getElementById('ajax_container').innerHTML = responseText;
            }
        }).send(); 
    });
})
/* ]]> */
" ;
$doc = &JFactory::getDocument();
$doc->addScriptDeclaration($ajax);
?>

和我使用代码的default.php控制器:

function updateAjax() {
   echo date('Y-m-d D H:i:s');
}

当我运行代码时出现错误undefined method JDocumentRaw::addCustomTag(),如何解决?

【问题讨论】:

    标签: joomla joomla1.7


    【解决方案1】:

    我认为你在使用 for ajax 调用 jquery 时错了:

    $document =& JFactory::getDocument();
    $document->addCustomTag("call jquery library or script other");
    

    然后你试试:

    if($document->getType() != 'raw'){
       $document->addCustomTag("call jquery library or script other"); 
    }
    

    【讨论】:

      【解决方案2】:

      这是因为您将“format”参数设置为“raw”,通常是通过将 &format=raw 添加到用于访问组件的 URL 的末尾。这会触发 Joomla 使用 JDocumentRaw 渲染器而不是标准的 JDocument 渲染器。您可以通过选择以下选项之一(以更合适的方式)来解决此问题:

      • 从链接页面的 URL 中删除“format=raw”,并使用其他方法让您的页面按预期显示,例如在 URL 中添加 tmpl=component 或 template=system

      • 添加检查“格式”是否设置为原始,在这种情况下根本不要添加脚本

      • 用您自己的扩展 JDocumentRaw 类,该类实现您自己的添加脚本的方法,并使用 format=yourRendererName 而不是 format=raw

      【讨论】:

        猜你喜欢
        • 2011-04-12
        • 2015-02-04
        • 1970-01-01
        • 2015-08-22
        • 2015-01-28
        • 2015-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多