2013-04-13 58 views
2

我有一个小问题,我想在页面打开时尽快运行javascript,但它对我无效。在许多论坛和教程,我试着他们建议使用的onload功能在我的情况:在页面打开时运行Javascript

<body onload="loadPage()"> 

所以我的脚本称为loadPage,但它不工作...取而代之的是页面打开一个(在如果链接,否则如果语句) - 一个只有一个空白页面。任何帮助大大appriciated!

<%@ 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实际上将它指向我 - 正如它通常那样,但它没有......多亏了所有!

+7

“不起作用”是一个足够的问题描述。 –

+0

请显示您的呈现HTML(没有您的服务器端的东西) –

+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输出,以确保您的服务器端代码正在输出你所期望的。你可以取出所有的服务器端代码,并开始添加部分,看看它是什么打破。

+0

感谢您的回复,我使用了不同的选项,并做了以下操作:var placeName =“<%=place%>”;并在我的if else语句中:if(placeName ==“belmullet”),我也必须添加;在函数结束时。我认为apache tomcat实际上会将它指向我 - 正如它通常那样...谢谢! –

相关问题