在Joomla 2.5中加载脚本顺序

Cri*_*ris 1 joomla joomla2.5

我需要在加载我的Joomla 2.5组件时加载一个jquery脚本; 在我看来,我补充说:

function display($tpl = null)
{
// Display the template
$document = JFactory::getDocument();
$document->addScript("components/com_myname/assets/js/script.js","text/javascript",true);
parent::display($tpl);
}
Run Code Online (Sandbox Code Playgroud)

但是脚本永远不会执行,因为script.js是在jquery.js之前加载的.如何在不破解joomla核心或模板文件的情况下建立脚本的加载顺序?

Nag*_*jun 19

您需要先将jquery添加到文档中:

$document->addScript('/path/to/jquery/jquery.min.js');
$document->addScript('components/com_myname/assets/js/script.js');
Run Code Online (Sandbox Code Playgroud)

为避免多个扩展加载多个jquery实例,请使用以下代码,大多数开发人员都遵循此代码.

$app = JFactory::getApplication();
if(!$app->jquery){
  $document->addScript('/path/to/jquery/jquery.min.js');
  $app->jquery = true;
}
Run Code Online (Sandbox Code Playgroud)

如果你无法控制如何加载jquery,你可以使用下面的方法.

$document->addCustomTag('<script src="'.JURI::root(true).'/components/com_myname/assets/js/script.js" type="text/javascript"></script>');
Run Code Online (Sandbox Code Playgroud)

加载所有其他脚本后将加载自定义标记.