1

加载我的 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);
}

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

4

1 回答 1

19

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

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

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

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

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

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

自定义标签将在所有其他脚本加载后加载。

于 2013-05-20T17:56:57.570 回答