1

我在 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');

模板标题 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

如何删除此 JavaScript 代码?

参考文件:

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

2 回答 2

6

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

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

或者

unset ( $this -> _metaTags[ 'http-equiv' ] ) ;
$this -> _scripts    = array ( ) ;
$this -> _script     = array ( ) ;

得到全部。:)

不使用:

$doc -> setHeadData($headData);

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

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

于 2013-06-15T14:33:48.137 回答
3

用于JHtml::_('behavior.disable','behavior');删除特定行为

我们在网络和论坛上有很多帖子,用户要求删除这种或那种行为。而不是他们通过我们可以拥有的视图和核心来破解他们的方式:

JHtml::_('behavior.disable','特定行为'); 删除我们不想要的

示例场景

无论您的 HTML 覆盖是否未加载它,都会加载工具提示。

JHtml::_('behavior.disable','tooltips');放置在模板中index.php可以为您执行此操作,这样可以帮助您从不需要的脚本中清除 head 标签。

在 3.0 中,如果您只想从注册中删除工具提示,则必须将视图复制到 HTML 覆盖。删除 JHtml::_('behavior.tooltip'); 从文件中,然后它就消失了。我认为这应该在没有 HTML 覆盖的情况下完成。

在 2.5.x 中,即使使用 HTML 覆盖也无济于事。工具提示保留。

如果您安装的任何其他扩展正在加载您不想要的行为,您将需要更长的时间才能弄清楚它在哪里。

于 2013-01-04T07:14:23.613 回答