2013-04-13 93 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實際上會將它指向我 - 正如它通常那樣...謝謝! –

相關問題