Отключить загрузку скрипта в голове


9

Как отключить загрузку

  • mootools-core.js
  • core.js

В <head>без использования стороннего компонента / плагина?


Какую версию Joomla вы используете?
TryHarder

@moomoochoo Я использую joomla 3.2
web-tiki

Ответы:


18

Я использую Joomla 3.2, в верхней части моего соблазна я поставил:

$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]);
    }
}

Это предотвращает включение этих сценариев, добавление или удаление сценариев по мере необходимости


3
Это не удалось в моем последнем проекте (Joomla 3.3.6). Я добавил JURI::root(true).перед путями сценария, и это работало.
web-tiki

5

Вы можете сбросить его в шаблоне

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

Это удалит оба файла JS из заголовка.


4

В Joomla 3.x вы можете вызвать JHtml::_('jquery.framework')свой шаблон для загрузки jQuery без Mootools. Эта нагрузка Jquery в режиме без конфликтов по умолчанию , так что если вам нужен нормальный режим, просто добавьте второй параметр ЛОЖЬ : JHtml::_('jquery.framework', false).

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


2

Я использовал это:

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

2
Поскольку ваша needleстрока не является переменной, и единственное намерение состоит в том, чтобы сопоставить регистр без учета регистра, было бы лучше использовать stripos () ...if (stripos($script, 'media/jui') !== false)
mickmackusa

0

Решение @ContextSwitch не работало для меня из-за того, что некоторые скрипты загружались после обработки шаблона, поэтому удаление файлов на этом этапе не влияло на эти файлы.

Поэтому мне пришлось реализовать подобное решение, но с помощью простого плагина, привязанного к onBeforeCompileHeadсобытию. Как описано мной здесь .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.