大家好!
在某些情況
我們必須要取消joomla3的預設JS呼叫
例如:chosen.jquery.min.js

這個JS常常影響到一些版型
造成顯示異常或是不正確
所以今天我特別分享我常用的修改方式

//以下程式碼通常寫在模板的index.php裡面
$document = JFactory::getDocument();//呼叫文件類別
$headData = $document->getHeadData();//取得目前的HeadData

$scripts = $headData['scripts'];//HeadData 陣列中有個scripts .放置要載入的JS

$newScripts = array();//取代原本JS載入陣列
$noJs = array();//這邊放置哪一些JS要移除
$noJs[] = 'chosen.jquery.min.js';

foreach ($scripts as $js=>$v)//JS陣列迴圈
{
    $goJs = TRUE;
    foreach ($noJs as $findJs)//要移除的JS陣列迴圈
    {
        if (strpos($js, $findJs))//如果符合
        {
            $goJs = FALSE;
        }
    }
    if ($goJs)//如果通過
    {
        $newScripts[$js] = $v;//放在新JS陣列中
    }
}

$headData['scripts'] = $newScripts;//取代原有JS陣列

//css的取代也很類似
$styleSheets = $headData['styleSheets'];
unset($styleSheets['/media/system/css/modal.css']);//這邊直接用unset
$headData['styleSheets'] = $styleSheets;//取代原有的CSS陣列

//這邊可以直接修改headData中的script
$headData['script']['text/javascript'] = str_replace("jQuery('select').chosen","jQuery('selectNone').chosen",$headData['script']['text/javascript']);

//最後在放進去headData中
$document->setHeadData($headData);



當然
我這邊的修改方法也不一定正確
主要是針對在某些情況之下
必須要修改joomla3的預設JS載入
甚至是jquery的載入

給大家參考
感恩!