为什么javascript在页面加载时执行?

时间:2012-04-22 18:54:45

标签: javascript jsp

我正在使用JSP编写一个站点。我在下面添加了一个代码段。

我遇到的问题是,每次页面加载javascript中的addBookmark()方法都会被执行但我看不到警报。当我按下按钮时,我看到警报,但未调用addBookmark()方法。造成这种奇怪行为的原因是什么?

<% User user = new User() %>
<script type="text/javascript">
   function add()
   {
      <% user.addBookmark(); %>                               
      alert("addBookmark");
   }
</script>

<button type="button" style="float: right" onclick="add()">Bookmark</button>

谢谢你提前!

2 个答案:

答案 0 :(得分:3)

在页面加载时执行JSP,因为JSP中的所有命令都在您的服务器上执行。 相反,Javascript只在浏览器中执行。

所以你看到的是服务器正在构建页面,执行函数然后输出页面。 该功能不再在您的JavaScript中。至少不会,如果它本身没有输出一些javascript代码。

单击该按钮时,jsp代码已经执行。如果你想在那一刻执行代码,你需要用javascript而不是jsp来编写代码,或者使用其他请求来调用它。

答案 1 :(得分:3)

因为JSP不直接与浏览器通信,所以它也不知道浏览器对页面的作用以及用户的作用。它只是一个简单的解释器,遍历您的代码并查找<%。执行<%%>之间的任何代码,其余代码只会写入浏览器。这意味着JSP解释器不会读取您的JavaScript,服务器只会添加书签。

您要找的是要求服务器实际添加书签。像mypage.jsp?addBookmark=true这样添加书签的东西。

相关问题