gpt4 book ai didi

javascript - Joomla - 如何使用用户在模板参数中提供的信息从头部取消设置 JS 文件

转载 作者:太空宇宙 更新时间:2023-11-03 17:29:05 24 4
gpt4 key购买 nike

我已经使用下面的常用方法从 Joomla 模板 HTML head 中手动取消设置 JS 和 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']);

所以尝试(未测试!!):

// grab the js file paths user enters into template parameters and add them to an array i can loop through

$doc = JFactory::getDocument();
$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) {
unset($this->_scripts[JURI::root(true) . $valueJS]);
}

关于javascript - Joomla - 如何使用用户在模板参数中提供的信息从头部取消设置 JS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30929881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com