我正在尝试使用此功能制作进度条
public function preflight($route, JAdapterInstance $adapter)
{
echo '<script>
console.log("lol");
</script>';
}
通常预警应该在所有类型的操作之前执行,我用die()测试它没关系但是当你回显或尝试执行js脚本时没有执行之前但之后。
我们是否有进行此进度的更改?
答案 0 :(得分:0)
尝试使用Joomla的addScriptDeclaration()
方法,而不是试图回应你的脚本,如下所示:
public function preflight($route, JAdapterInstance $adapter)
{
$doc = JFactory::getDocument();
$js = '
console.log("lol");
// some more code here
';
$doc->addScriptDeclaration($js);
}
请注意,我没有使用<script>
代码,因为addScriptDeclaration()
会自动为您添加这些代码。
希望这有帮助
答案 1 :(得分:0)
我刚刚在邮政飞行中遇到同样的事情,并怀疑它可能是同一个问题。对我来说,问题是Joomla扩展安装是使用AJAX请求完成的。这意味着任何在邮件和飞行前执行的代码都将在服务器端处理,任何生成的HTML在完成后插入到DOM中。因此,任何JavaScript都需要添加到返回HTML并包装在文档就绪的包装器中。尝试添加它,看看是否有东西出现在控制台中。
echo "<script>
jQuery(document).ready(function() {
console.log ('lol');
});
</script>";
这应该确认你的问题是否与我这样的AJAX联系在一起。