web-dev-qa-db-ja.com

ヘッドでのスクリプトの読み込みを無効にする

の読み込みを無効にする方法

  • mootools-core.js
  • core.js

<head>サードパーティのコンポーネント/プラグインを使用せずに?

8
web-tiki

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

これにより、これらのスクリプトが含まれるのを防ぎ、必要に応じてスクリプトを追加または削除します

18
ContextSwitch

テンプレートで設定を解除できます

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

これにより、両方のJSファイルがヘッダーから削除されます。

5
Harald Leithner

Joomla 3.xでは、テンプレートでJHtml::_('jquery.framework')を呼び出して、MootoolsなしでjQueryをロードできます。これはデフォルトでjQueryを競合なしモードでロードするため、通常モードが必要な場合は、falseの2番目のパラメーターを追加するだけです:JHtml::_('jquery.framework', false)

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

4
flutterderp

私はこれを使用しました:

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

@ContextSwitchによる解決策は、テンプレートの処理後に一部のスクリプトが読み込まれるため機能しなかったため、その段階でファイルの設定を解除しても、それらのファイルには影響がありませんでした。

そのため、同様のソリューションを実装する必要がありましたが、onBeforeCompileHeadイベントにバインドされた単純なプラグインを使用しました。私が説明したように ここ

0