私が使う JHtml::script
カスタム開発モジュールのページにスクリプトを追加します。ただし、これらのスクリプトは、J3がjQueryに追加する前にヘッドに挿入されます。次に例を示します。
<!-- my module js -->
<script src="/modules/mod_tiles/js/jquery.isotope.min.js" type="text/javascript"></script>
<script src="/modules/mod_tiles/js/jquery.hoverintent.min.js" type="text/javascript"></script>
<script src="/modules/mod_tiles/js/mod_tiles.js" type="text/javascript"></script>
<!-- then joomla loads jQuery --->
<script src="/media/jui/js/jquery-noconflict.js" type="text/javascript"></script>
<script src="/media/jui/js/jquery.min.js" type="text/javascript"></script>
Joomlaが他のスクリプトの前にjQueryを強制的にロードする方法を教えてください。
あなたは電話する必要があります
JHtml::_('jquery.framework');
他のJHtml :: scriptの前。これは、jQueryが最初にロードされることを確認します。
私があなたの質問を正しく読んだら、あなたはあなた自身のモジュールを開発しています。
Default.phpでこれを試してください-モジュールのビュー( "tmpl"内):
JHtml::stylesheet('modules/'.$module->module.'/assets/css/yourfile.css');
JHtml::script('modules/'.$module->module.'/assets/js/yourscript.js');
またはこれ:
JHtml::_('stylesheet', 'modules/'.$module->module.'/assets/css/anotherfile.css');
JHtml::_('script', 'modules/'.$module->module.'/assets/js/othercript.js');
どちらの場合も、「asset」フォルダー、および「css」と「js」フォルダーを内部に作成した場合、JSファイルはjQueryの後に挿入する必要があります。
2番目のソリューションは、joomla 3.X.X APIに準拠しています。
それが役に立てば幸い。
先週この問題に遭遇しましたが、これはJHtml :: scriptを呼び出す場所に関係していました。ビューまたはビューのテンプレートでこれを行っていますか?スクリプトをビュー自体に追加しようとすると(views/yourview/view.html.php)、Joomla!の独自のスクリプトの前に挿入されますが、テンプレートにスクリプトを追加すると(views/yourview/tmpl/default.php)Joomla!のスクリプトの後に挿入されます。
幸運を!
事後、2ビット追加したかった。コンポーネントにあるすべてのビューに対してロードする必要があるスクリプトとスタイルシートがいくつかあり、それらが正しい順序でロードされることを保証するために、単一のポイントでそれが発生することを望んでいました。
ファイルcomponents\myComponent\mycomponent.php
:
defined('_JEXEC') or die;
// Include dependancies
jimport('joomla.application.component.controller');
JHtml::stylesheet('http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css', array(), true);
JHtml::stylesheet('components/com_mycomponent/assets/css/mycomponent.css');
JHtml::_('jquery.framework'); // Make sure jQuery is loaded before component JS
JHtml::script( 'components/mycomponent/assets/js/jquery.cookie.js');
// Execute the task.
$controller = JControllerLegacy::getInstance('Mycomponent');
$controller->execute(JFactory::getApplication()->input->get('task'));
$controller->redirect();
これは、mod_tiles
の開発者がスクリプトのインポートに使用した方法が原因である可能性があります。この状況では、彼らはJoomlaコーディング標準に固執していないと思います。
あなたには2つのオプションがあります(私が考えることができます)hwre:
JHtml
を使用してインポートされました。お役に立てれば