我有一个 PHP 代码:
if($billing_total>$limit_to_send){
echo '<script type="text/javascript">
window.onload = function() {
alert("Sorry, you do not have enough credit");
}
</script>';
当我打印此消息时,它被打印在 PHP 页面的开头,如下所示:
<script type="text/javascript">
window.onload = function() {
alert("Sorry, you do not have enough credit");
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-----------------------------------------------------------
这导致浏览器中我的页面的标题( Logo )向下移动一行。
页面看起来会很糟糕,因为所有项目都会向下移动一行。
希望您清楚。请问有什么解决办法吗?
================================================== =============================
感谢大家...
解决方案:
$alert_message=<script type="text/javascript">
window.onload = function() {
alert("Sorry, you do not have enough credit");
}
</script>
在 HTML 代码中 body
标记之前的某个位置打印 $alert_message
^_^
最佳答案
确保在 DTD (doctype declaration) 之前不会输出任何内容.
参见this question欲了解更多信息...
doctype 声明必须是 html 页面的第一个元素,浏览器决定如何处理其余的 html 代码。在此之前输出任何内容可能会将您的浏览器置于 quirks mode因此您无法确定浏览器将如何呈现您的页面。
<小时/>如何避免这种情况?
echo
命令在到达其行时被执行,并且似乎您的 html 代码的其余部分紧随其后。
你可以
- 将 html DTD 和 header 移至 php 的顶部(但有时这是不可能的)或
- 将错误 html 存储在变量中,而不是
echo '<script ...
做$errorhtml = '<script ...
并在 php 的头部或正文生成代码的特定位置输出该字符串(如果不为空)。 - 如果您无法控制原始来源,您可以考虑重定向到带有自己的 html DTD、 header 和正文的错误页面,您可以设计最适合您的内容。
关于javascript - JavaScript 中的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9663862/