JSP 如何使用javascript更改标题内容

wribegjk  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(253)

我试图使一个非常简单的欢迎页面在我的网站,我想问候用户与“早上好....",取名字是不是一件事,但我的javascript部分是不工作,或者我不能叫出来,所以这里是我的代码:

<body style="background-color:rgb(255, 255, 255)">
 

  <h3 style="color: green">
    <%=ServletUtility.getSuccessMessage(request)%>
  </h3>
  <br>
  <h3 class="greeting" id="greeting">
    "greet()"
  </h3>
 <script>
    function greet(){
      var date1=new Date();
      var hour=date1.getHours();
      alert(hour);
      var header = document.getElementById("greeting");
      if(hour>0 && hour <=12){
        header.innerHTML="Good Morning"+" "+ <%=session.getAttribute("user")%>;
      }
      else if (hour >12 && hour <= 18){
        header.innerHTML="Good Afternoon" + " " +<%=session.getAttribute("user")%>;   
      }else if (hour >18 && hour <=22){
        header.innerHTML="Good Evening"+" "+ <%=session.getAttribute("user")%>;
      }else{ 
        header.innerHTML="Good Night"+" "+ <%=session.getAttribute("user")%>;
      }  
  
    
 }
  </script>
</body>

有谁能帮助我吗?,我是javascript新手

9fkzdhlc

9fkzdhlc1#

Javascript函数只能在<script></script>标签中执行。
您的标题:

<h3 class="greeting" id="greeting">
    "greet()"
  </h3>

因此,将不执行greet函数,而是显示“greet()"。
您可以通过调用script标记内的函数来解决此问题,如下所示:

<script>
    function greet(){
      var date1=new Date();
      var hour=date1.getHours();
      alert(hour);
      var header = document.getElementById("greeting");
      if(hour>0 && hour <=12){
        header.innerHTML="Good Morning"+" "+ "<%=session.getAttribute("user")%>";
      }
      else if (hour >12 && hour <= 18){
        header.innerHTML="Good Afternoon" + " " +"<%=session.getAttribute("user")%>";   
      }else if (hour >18 && hour <=22){
        header.innerHTML="Good Evening"+" "+ "<%=session.getAttribute("user")%>";
      }else{ 
        header.innerHTML="Good Night"+" "+ "<%=session.getAttribute("user")%>";
      }  

    
   }
  
   //add this line
   greet();
  </script>

您也可以从<h3>标签移除'greet()'。
请注意,我已经将您的"<%=session.getAttribute("user")%>"放在引号之间。<%=session.getAttribute("user")%>是服务器生成的。这意味着它将把它的内容(例如“John”)作为原始文本放置。如果引号不在那里,您将得到:

header.innerHTML="Good Night"+" "+ john;

这将引发引用错误:John被视为未初始化的变量。

11dmarpk

11dmarpk2#

我从来没有使用过JSP,但是我认为<%=是用来回显字符串的,所以我会使用它在函数Greet之外生成一个javascript变量,并将该变量作为参数提供给函数。该函数应该位于脚本中,或者作为内联事件处理程序,例如onclick=Greet(),但在这里不适用。
第一个

相关问题