Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
joomla 3.x中组件前端视图中的外部javascript文件_Javascript_Joomla_Components - Fatal编程技术网

joomla 3.x中组件前端视图中的外部javascript文件

joomla 3.x中组件前端视图中的外部javascript文件,javascript,joomla,components,Javascript,Joomla,Components,我正在为Joomla 3.x开发一个定制组件。我在函数display()中的\com\u mycomponent\views\pages\view.html.php中的一个名为“pages”的组件前端视图中添加了一个外部JavaScript文件。我在此函数中使用此代码: $document = JFactory::getDocument(); $document->addScript(JURI::root().'media/com_mycomponent/js/gallery.js');

我正在为Joomla 3.x开发一个定制组件。我在函数display()中的\com\u mycomponent\views\pages\view.html.php中的一个名为“pages”的组件前端视图中添加了一个外部JavaScript文件。我在此函数中使用此代码:

$document = JFactory::getDocument();
$document->addScript(JURI::root().'media/com_mycomponent/js/gallery.js');
当我检查firebug时,我看到文件已经加载,但问题在于排序。正如您在下面看到的,它位于jquery.min.js之前。我还尝试使用相同的代码在\com\u mycomponent\views\pages\tmpl\default.php中添加此文件,但出现了相同的问题。这是我从萤火虫那里得到的

<script type="text/javascript" src="http://localhost/tester3/media/com_mycomponent/js/gallery.js">
<script type="text/javascript" src="/tester3/media/jui/js/jquery.min.js">
<script type="text/javascript" src="/tester3/media/jui/js/jquery-noconflict.js">
<script type="text/javascript" src="/tester3/media/jui/js/jquery-migrate.min.js">


非常感谢您的帮助。

我不能100%确定
JHtml
方法是否能够处理订购问题,但最好尝试一下。因此,请将其替换为:

$document = JFactory::getDocument();
$document->addScript(JURI::root().'media/com_mycomponent/js/gallery.js');
为此:

JHtml::_('bootstrap.framework');
JHtml::_('jquery.framework');
JHtml::_('script', JUri::root() . 'media/com_mycomponent/js/gallery.js');

我在view.html.php和default.php中尝试了您的推荐,但问题仍然存在,这很奇怪@Gaz-尝试使用
JHtml::(('jquery.framework')
before,如上所示,这一次它有点起作用,但它仍然位于bootstrap.min.js和template.js之前。如果它位于template.js之前,应该不会有问题。但是为了确保它位于bootstrap.min.js之后,请参阅我的更新答案。我的意思是,这是将外部js文件添加到组件的正常方式吗?