【发布时间】:2019-11-25 00:18:27
【问题描述】:
我的网站有一个 PHP 邮件代码。每当它运行时,它应该重定向(标题)回到主页,并且应该弹出一个窗口说“消息已发送”或其他什么。我使用 Javascript 实现了这个,它工作正常。这是我的“global.php”中的代码供参考。
var msg = document.getElementById("msg");
var opnmsg = function()
{
msg.classList.remove("boxoff");
msg.classList.add("boxactive");
}
这里没有什么令人印象深刻的。 “msg”默认关闭,如果运行 opnmsg(),它会打开。这行得通 - 如果我在检查器控制台中键入它,窗口就会显示出来。此外,如果我在文件中的其他任何位置写它,它也可以工作。
不幸的是,只有在运行“mail.php”时,我才能让窗口出现。它正确重定向到网页,但没有显示。有趣的是,alert() 之类的基本函数可以正常工作。这是有问题的代码sn-p:
echo '<script type="text/javascript">
window.location = "/en/";
opnmsg();
</script>';
在使用 window.location 之前,我只是使用了 header 命令,但在这种情况下,根本不会运行任何东西,甚至 alert() 也不会运行。此外,该位置本身位于根目录上,然后根据浏览器的语言重定向到另一个页面,尽管我暂时直接链接它只是为了测试(没有区别)。页面本身(“index.php”)确实有另一个标题命令加载“global.php”(js代码所在的位置),但是,即使将js脚本复制到索引也不起作用。此外,我尝试了许多 opnmsg() 函数的替代方法,包括直接将 Javascript sn-p 复制到 echo 中。没有任何效果。
关于可能是什么问题的任何想法?谢谢。
【问题讨论】:
-
什么 JavaScript 控制台节目?有什么错误吗?
-
window.location 将重定向,对 opnmsg 的调用不会按预期工作,您为什么不使用
header()? -
@LawrenceCherone 正如我在原帖中所说,header() 根本不起作用,甚至对于在 window.location 上起作用的 alert() 命令也不起作用。
-
@EliasSoares 我之前没有注意到它(因为在我阅读之前它会清楚),但现在它说“未捕获的 ReferenceError:opnmsg 未在 mail.php:3 定义”跨度>
-
可能您将函数用法放在声明之前
标签: javascript php function header echo