除非有虚拟回声语句,否则不会调用 Sweet Alert
Sweet Alert not getting called unless dummy echo statement in place
我在使用 Sweet Alert 时遇到一个非常奇怪的错误。希望有人可以提供一些故障排除建议。请观看视频 here 以了解它的奇怪之处。下面我也简单介绍一下:
它是代码的用户登录部分的一部分。
该函数调用 Sweet Alert 以提供弹出式警报。当我插入诸如 echo "REACHED PREP LOGIN";
之类的虚拟 echo 语句时,它会起作用,我得到了弹出窗口。如果这不在,则没有弹出窗口。代码如下:
function prepLogin ($id, $username, $remember, $email){
$_SESSION['id'] = $id;
$_SESSION['username'] = $username;
$_SESSION['email'] = $email;
$fingerprint = md5($_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);
$_SESSION['last_active'] = time();
$_SESSION['fingerprint'] = $fingerprint;
if($remember === "yes"){
rememberMe($id);
}
//call sweet alert
//echo 'REACHED PREP LOGIN'.'<br>';
echo $welcome = "<script type=\"text/javascript\">
swal({
title: \"Welcome back $username!\",
text: \"You're being logged in.\",
type: 'success',
timer: 3000,
showConfirmButton: false });
setTimeout(function(){
window.location.href = '../../index.php';
}, 3000);
</script>";
}
我不明白为什么 echo 语句会使脚本函数无效...必须有办法解决这个问题。如有任何帮助,我们将不胜感激!
如果你打开你的控制台,你会看到 Sweat Alert 的错误,说它在 dom 完全加载之前被注入。如果你像这样包装你的 swal 调用
echo $welcome = "<script type=\"text/javascript\">
document.addEventListener(\"DOMContentLoaded\", function(){
swal({
title: \"Welcome back $username!\",
text: \"You're being logged in.\",
type: 'success',
timer: 3000,
showConfirmButton: false });
setTimeout(function(){
window.location.href = '../../index.php';
}, 3000);
});
</script>";
然后 swal 不会开火,直到整个 dom 加载完毕。我猜当你添加另一个 echo 语句时,它会在脚本标记获取 运行.
之前呈现整个 dom
我在使用 Sweet Alert 时遇到一个非常奇怪的错误。希望有人可以提供一些故障排除建议。请观看视频 here 以了解它的奇怪之处。下面我也简单介绍一下:
它是代码的用户登录部分的一部分。
该函数调用 Sweet Alert 以提供弹出式警报。当我插入诸如 echo "REACHED PREP LOGIN";
之类的虚拟 echo 语句时,它会起作用,我得到了弹出窗口。如果这不在,则没有弹出窗口。代码如下:
function prepLogin ($id, $username, $remember, $email){
$_SESSION['id'] = $id;
$_SESSION['username'] = $username;
$_SESSION['email'] = $email;
$fingerprint = md5($_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);
$_SESSION['last_active'] = time();
$_SESSION['fingerprint'] = $fingerprint;
if($remember === "yes"){
rememberMe($id);
}
//call sweet alert
//echo 'REACHED PREP LOGIN'.'<br>';
echo $welcome = "<script type=\"text/javascript\">
swal({
title: \"Welcome back $username!\",
text: \"You're being logged in.\",
type: 'success',
timer: 3000,
showConfirmButton: false });
setTimeout(function(){
window.location.href = '../../index.php';
}, 3000);
</script>";
}
我不明白为什么 echo 语句会使脚本函数无效...必须有办法解决这个问题。如有任何帮助,我们将不胜感激!
如果你打开你的控制台,你会看到 Sweat Alert 的错误,说它在 dom 完全加载之前被注入。如果你像这样包装你的 swal 调用
echo $welcome = "<script type=\"text/javascript\">
document.addEventListener(\"DOMContentLoaded\", function(){
swal({
title: \"Welcome back $username!\",
text: \"You're being logged in.\",
type: 'success',
timer: 3000,
showConfirmButton: false });
setTimeout(function(){
window.location.href = '../../index.php';
}, 3000);
});
</script>";
然后 swal 不会开火,直到整个 dom 加载完毕。我猜当你添加另一个 echo 语句时,它会在脚本标记获取 运行.
之前呈现整个 dom