it-swarm.com.de

Deaktivieren Sie das Laden von Skripten in head

Wie deaktiviere ich das Laden von

  • mootools-core.js
  • core.js

Im <head> ohne Verwendung einer Komponente/eines Plugins eines Drittanbieters?

8
web-tiki

Ich benutze Joomla 3.2, ganz oben auf meiner Liste:

$doc = JFactory::getDocument();

$dontInclude = array(
'/media/jui/js/jquery.js',
'/media/jui/js/jquery.min.js',
'/media/jui/js/jquery-noconflict.js',
'/media/jui/js/jquery-migrate.js',
'/media/jui/js/jquery-migrate.min.js',
'/media/jui/js/bootstrap.js',
'/media/system/js/core-uncompressed.js',
'/media/system/js/tabs-state.js',
'/media/system/js/core.js',
'/media/system/js/mootools-core.js',
'/media/system/js/mootools-core-uncompressed.js',
);

foreach($doc->_scripts as $key => $script){
    if(in_array($key, $dontInclude)){
        unset($doc->_scripts[$key]);
    }
}

Dadurch wird verhindert, dass diese Skripte eingeschlossen werden. Fügen Sie nach Bedarf Skripte hinzu oder entfernen Sie sie

18
ContextSwitch

Sie können es in der Vorlage deaktivieren

unset(
  $this->_scripts['/media/jui/js/mootools-core.js'],
  $this->_scripts['/media/jui/js/core.js']);

Dadurch werden die beiden JS-Dateien aus dem Header entfernt.

5
Harald Leithner

In Joomla 3.x können Sie JHtml::_('jquery.framework') in Ihrer Vorlage aufrufen, um jQuery ohne Mootools zu laden. Dies lädt jQuery standardmäßig im Modus ohne Konflikte. Wenn Sie also den normalen Modus benötigen, fügen Sie einfach einen zweiten Parameter false : JHtml::_('jquery.framework', false) hinzu.

http://docs.joomla.org/J3.2:Javascript_Frameworks

4
flutterderp

Ich habe das benutzt:

foreach ($doc->_scripts as $script => $value)
{
    if (preg_match('/media\/jui/i', $script))
      unset($doc->_scripts[$script]);
}
2
Aerendir

Die Lösung von @ContextSwitch funktionierte bei mir nicht, da einige Skripte geladen wurden, nachdem die Vorlage verarbeitet wurde, sodass das Deaktivieren der Dateien in diesem Stadium keine Auswirkungen auf diese Dateien hatte.

Also musste ich die ähnliche Lösung implementieren, aber ein einfaches Plugin verwenden, das an das Ereignis onBeforeCompileHead gebunden war. Wie von mir beschrieben hier .

0