Javascript中的错误消息

Error message in Javascript

本文关键字:消息 错误 Javascript      更新时间:2023-09-26

我有一个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" />
        -----------------------------------------------------------

这导致浏览器中我页面的标题(徽标)向下移动了一行。

页面看起来会很糟糕,因为那里的所有项目都会下移一行。

我希望你清楚。有什么解决方案吗?

=================================================

感谢所有人。。。

解决方案:

$alert_message=<script type="text/javascript">
    window.onload = function() {
    alert("Sorry, you do not have enough credit");
 }
   </script>

body标记^_^之前的HTML代码中的某个位置打印$alert_message

确保在DTD(doctype声明)之前从不输出任何内容。

有关详细信息,请参阅此问题。。。

doctype声明必须是html页面的第一个元素,它来自浏览器决定如何处理其余html代码的内容。在此之前输出任何内容都可能会使您的浏览器处于怪癖模式,因此您无法确定浏览器将如何呈现您的页面。


如何避免这种情况?

echo命令在到达其行时执行,之后似乎会执行html代码的其余部分。

你可以选择

  • 将htmlDTD和头移到php的顶部(但有时这是不可能的)或者
  • 将错误html存储在一个变量中,因此不要使用echo '<script ...,而是使用$errorhtml = '<script ...,并在php的头部或主体生成代码的特定位置输出该字符串(如果不是空的)
  • 如果您无法控制原始源代码,您可以考虑重定向到一个错误页面,该页面具有自己的html DTD、页眉和正文,您可以将其设计为最适合您的

die()附加到if代码块中,或者让php将脚本打印在主体或头部的某个位置。

这显示了应用程序的糟糕设计。我建议你把它改成:

$errors = array();
if($billing_total>$limit_to_send){
  $errors[] = 'Sorry, you do not have enough credit'; 
}

然后在您的HTML文件上,在<body>标记关闭之前,读取您的数组并显示任何错误

<?php if(is_array($errors)): ?>
  <script type="text/javascript">
   <?php foreach($errors as $error): ?>         
        alert('<?php echo $error; ?>');
   <?php endforeach; ?>
  </script>
<?php endif; ?>