我有一个示例代码: 在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()
,如何解决?
答案 0 :(得分:3)
我觉得你在使用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");
}
答案 1 :(得分:3)
这是因为您将“format”参数设置为“raw”,通常是将&amp; format = raw添加到用于访问组件的URL的末尾。这会触发Joomla使用JDocumentRaw渲染器而不是标准JDocument渲染器。您可以通过选择以下之一来解决此问题(以较合适者为准):
从链接页面的URL中删除“format = raw”,并使用备用方法使页面按预期显示,例如将tmpl = component或template = system添加到URL
添加检查“format”是否设置为raw,在这种情况下不要添加脚本