如何删除模板头中的 JavaScript 代码 (Joomla! 3.0.x)?

ray*_*ray 1 javascript css jquery joomla mootools

我在 Joomla 中创建了一个模板!3x,但我想删除页眉中的默认 JavaScript 代码和样式表。

我的代码是:

$doc = JFactory::getDocument();

//Remove default configuration
$doc->setGenerator("");
$headData = $doc -> getHeadData();
unset($headData['metaTags']['http-equiv']);
$doc -> setHeadData($headData);   //Is OK
$doc -> _styleSheets = array();   //Is OK
$doc -> _scripts = array();       //Is OK
$doc -> _script =  array();  **// Not OK**

//Add foundation
$doc->addStyleSheet('templates/'.$this->template.'/css/foundation.css');
$doc->addScript('templates/'.$this->template.'/js/jquery.js');
$doc->addScript('templates/'.$this->template.'/js/modernizr.foundation.js');
Run Code Online (Sandbox Code Playgroud)

模板标题 HTML 现在是:

function keepAlive() { var myAjax = new Request({method: "get", url: "index.php"}).send();} window.addEvent("domready", function(){ keepAlive.periodical(840000); });
jQuery(document).ready(function() {
    jQuery('.hasTooltip').tooltip({});
});
// The block is not removed
Run Code Online (Sandbox Code Playgroud)

如何删除此 JavaScript 代码?

参考文件:

  • /libraries/joomla/html/behavior.php
  • /libraries/cms/html/bootstrap.php

Jus*_*igh 6

我在这里这里找到了一个简单的解决方案:

unset($this->_scripts[JURI::root(true).'/media/system/js/caption.js']);
Run Code Online (Sandbox Code Playgroud)

或者

unset ( $this -> _metaTags[ 'http-equiv' ] ) ;
$this -> _scripts    = array ( ) ;
$this -> _script     = array ( ) ;
Run Code Online (Sandbox Code Playgroud)

得到全部。:)

不使用:

$doc -> setHeadData($headData);
Run Code Online (Sandbox Code Playgroud)

它会做奇怪而神秘的事情。

您(和我)遇到的问题是$doc通过重置变量$doc->setHeadData($headData)而不是取消设置_scripts_script通过$thisCoderwall.com提供了一个详尽的示例。