我有一点问题,我想在页面打开后立即运行javascript,但它对我不起作用。在许多论坛和教程中,我尝试过他们建议在我的情况下使用onload函数:
<body onload="loadPage()">
所以我的脚本被称为loadPage,但它不起作用...而不是打开其中一个页面(if中的链接,否则if语句) - 只是有一个空白页面。任何帮助都很有帮助!
<%@ include file="header.jsp" %>
<%@ page import="java.sql.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ page import="java.util.ArrayList" language="java" %>
<%@ page import="java.text.MessageFormat" language="java" %>
<%@ page import="java.util.List" language="java" %>
<%@ page import="java.util.ArrayList" %>
<%
String place = request.getParameter("place");
%>
<html>
<head>
<script type="text/javascript">
function loadPage()
{
if( <%=place%> == "birr")
{
window.open("http://localhost:82/IrishClimateData/Birr.jsp");
}
...more else if statemens here...
else if( <%=place%> == "Shannonairport")
{
window.open("http://localhost:82/IrishClimateData/Shannon airport.jsp");
}
}
</script>
</head>
<body onload="loadPage()">
</body>
</html>
我玩了不同的选项并做了以下事情:
var placeName = "<%=place%>";
if( placeName == "birr")
我还必须补充;在功能结束时。我认为apache tomcat实际上会指向我 - 就像它通常那样,但它没有......感谢所有人!
答案 0 :(得分:1)
删除服务器端代码并简化loadPage功能后,它看起来运行正常。这是一个实例:http://jsbin.com/ozetah/2/?place=birr
实时示例代码:
<html>
<head>
<script type="text/javascript">
function loadPage() {
// code to replicate server side capture of GET parameter
var place = /place=(.*?)(?:$|&)/.exec(document.location.search);
if( place.length >1 ) { place = place[1]; }
if( place == "birr") {
window.open("http://localhost:82/IrishClimateData/Birr.jsp");
} else if( place == "Shannonairport") {
window.open("http://localhost:82/IrishClimateData/Shannon airport.jsp");
} else {
alert('place param of "'+place+'" doesn\'t match');
}
}
</script>
</head>
<body onload="loadPage()">
</body>
</html>
由于所有这些都有效并且您没有在代码中看到任何错误,我会检查html输出以确保您的服务器端代码输出您期望的内容。您可以取出所有服务器端代码并开始重新添加部分以查看是什么打破了它。