我有一個joomla 1.5網站,我使用mootools(用於chronoforms)和一些自定義jquery代碼。
整個網站上只有2個頁面,我需要mootools或jquery,但它都加載在所有頁面上。joomla加載mootools和/或只需要頁面上的jquery
如何讓Joomla僅在需要的頁面上加載腳本?
感謝
我有一個joomla 1.5網站,我使用mootools(用於chronoforms)和一些自定義jquery代碼。
整個網站上只有2個頁面,我需要mootools或jquery,但它都加載在所有頁面上。joomla加載mootools和/或只需要頁面上的jquery
如何讓Joomla僅在需要的頁面上加載腳本?
感謝
您可以修改的Joomla代碼:
去:
庫/的Joomla/HTML/HTML/behaviour.php
搜索裝載Mootools的地方。
添加的if/else:
例如:
$component = JRequest::getVar("option");
//xmap does not support Mootools 1.2
if($component == "com_xmap") {
JHTML::script('jquery.js', 'media/system/js/', false);
}
我想你可以把jQuery的開和關,通過使用這些腳本的特定頁面
$document = &JFactory::getDocument(); $document->addScript('[path to jquery]'); $noconflict = 'jQuery.noConflict();'; $document->addScriptDeclaration($noconflict);
我不知道如何把Mootool關閉。我擔心它總是附着在系統上。
希望得到這個幫助。
OK本文http://magazine.joomla.org/issues/Issue-Feb-2011/item/349-removing-mootools展示如何刪除mootool
感謝,但我在哪裏把這個代碼? – Ruben 2011-06-15 07:45:53
你可以把它放在Chrono的表單中,別忘了 – Panuwizzle 2011-06-15 08:06:24
你可以在你的模板的index.php文件使用下面的代碼:
$app =& JFactory::getApplication();
if ($app->isSite()) { // Make changes only on Front-end
$frontpage = (isset($this->_metaTags['standard']['title']) && $this->_metaTags['standard']['title'] == "Frontpage")? true : false;
$com = JRequest::getVar("option");
// When you need Mootools on frontpage only
if(!$frontpage) {
$prohibited = array (
'/media/system/js/core.js',
'/media/system/js/mootools-core.js',
'/media/system/js/mootools-more.js',
'/media/system/js/caption.js'
);
}
// When you need jQuery, for example in "com_xmap" only
if($com != "com_xmap") {
$prohibited = array (
'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js',
);
}
foreach ($this->_scripts as $key => $value) {
if(in_array($key, $prohibited)) {
unset($this->_scripts[$key]);
}
}
}
謝謝,明天我會試試 – Ruben 2011-06-15 07:46:10