Javascript Joomla-如何使用用户在模板参数中提供的信息从头部取消JS文件
我已经使用下面的常用方法成功地从Joomla模板HTML头部手动取消JS和CSS文件的设置Javascript Joomla-如何使用用户在模板参数中提供的信息从头部取消JS文件,javascript,css,templates,joomla,unset,Javascript,Css,Templates,Joomla,Unset,我已经使用下面的常用方法成功地从Joomla模板HTML头部手动取消JS和CSS文件的设置 unset($this->_scripts['/media/jui/js/bootstrap.min.js']); unset($this->_stylesheets['/media/jui/js/bootstrap.min.css']); 我的问题是。是否可以将文件和路径信息存储到变量中,然后在上述示例中使用变量代替路径/文件?如果是这样的话,有什么好方法可以做到这一点 原因是什么?我想让
unset($this->_scripts['/media/jui/js/bootstrap.min.js']);
unset($this->_stylesheets['/media/jui/js/bootstrap.min.css']);
我的问题是。是否可以将文件和路径信息存储到变量中,然后在上述示例中使用变量代替路径/文件?如果是这样的话,有什么好方法可以做到这一点
原因是什么?我想让模板的用户能够在模板参数中输入多个文件/路径(以逗号分隔),将这些不同的文件/路径存储到一个数组中,然后在该数组中循环(取消设置/删除模板HTML头中的每个文件/路径)
目的是什么?有时需要从html头部和页面底部删除js,以减少页面加载时间、页面转换闪烁/白色闪烁等。在这种情况下,我不想使用插件。我宁愿给我的用户一些细粒度的控制,如果可能的话,内置到模板中。当然,我会在模板参数中为用户添加一个位置,以便将他们从标题中删除的任何js添加到底部
我正在使用的代码
// grab the js file paths user enters into template parameters and add them to an array i can loop through
$unsetJSFiles = $this->params->get( 'customFilesUnsetJS' );
$unsetJSFilesArray = explode(',', $unsetJSFiles);
// loop through each js file path user entered and unset each one from joomla html head
foreach ($unsetJSFilesArray as $valueJS) {
$doc = JFactory::getDocument();
unset($doc->_scripts[$valueJS]);
}
它似乎不起作用。我已经成功地测试了通过print_r、echo等输出的值是否符合我的要求,但是循环不起作用。这是我在stackoverflow上问的第一个真正的问题。研究了很多帖子,在谷歌上搜索,但我找不到答案。非常感谢你的建议 尝试在循环外部(循环上方)声明$doc 你应该用这个来解除它,并声明根
unset($this->_scripts[JURI::root(true) . '/media/jui/js/jquery.min.js']);
所以试一下(不测试!!):
尝试在循环外(循环上方)声明$doc 你应该用这个来解除它,并声明根
unset($this->_scripts[JURI::root(true) . '/media/jui/js/jquery.min.js']);
所以试一下(不测试!!):