joomla只在需要的地方加载页面上的mootools和/或jquery


joomla load mootools and/or jquery on page where needed only

我有一个joomla 1.5站点,在那里我使用了mootools(用于时间形式)和一些自定义jquery代码
整个网站上总共只有2个页面需要mootools或jquery,但它都加载在所有页面上。

如何让Joomla只在需要的页面上加载脚本?

感谢

我认为可以通过将这些脚本用于特定的页面来打开和关闭jQuery

$document=&JFactory::getDocument();$document->addScript('[path to jquery]');$noconflict='jQuery.noconflict();';$document->addScriptDeclaration($noconflict);

我不知道如何关闭Mootool。恐怕它总是连接到系统上希望这能有所帮助。

确定这篇文章http://magazine.joomla.org/issues/Issue-Feb-2011/item/349-removing-mootools显示如何删除mootool

您可以修改joomla代码:

转到:

libraries/joomla/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);
 } 

您可以在模板的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]);
        }
     }
}