2013-01-11 55 views
0

基本上我有2個問題與JavaScript和jsp文件。首先關注的是我不能將externall js文件包含到jsp文件中。我的項目的基本結構看起來是這樣的:如何在jsp文件中包含js文件和初始化一些函數

system.web 
     | 
     WebContent 
     | 
     js 
      | 
      nowa_postac.js 
     | 
     jsp 
      | 
      nowa_postac.jsp 

nowa_postac.js只有

init = function() { 
    test(); 
} 
function test() { 
     var myObject = JSON.parse('${gson}', null); 
     alert(myObject.rasy.rasaList.length); 
     alert(document.getElementById("testowy").id); 
    } 

我包含JavaScript裏面nowa_postac.jsp有:

<script type="text/javascript" src="${pageContext.request.contextPath}/js/nowa_postac.js"></script> 

,但我不能在jsp文件中調用nowa_postac.js中的任何函數和

src="<c:url value="/js/nowa_postac.js" 

似乎不能正常工作... test()只會返回警告(測試)返回文本,所以JavaScript文件被加載...此外,當test()位於jsp文件內時,一切正常。

第二個問題是關於如何在jsp頁面加載後初始化函數;

<body onload='init()'> 

不在這裏好,因爲到了init()我需要參考在JSP中創建了一些對象... 感謝所有幫助

+0

在瀏覽器中觀察生成的HTML頁面的源代碼,並檢查JS文件是否正確包含在您的頁面中(正常的瀏覽器如Chrome或Firefox會使您的' 'now now both test()和警報(測試)沒有返回任何東西... – Jonaev

+1

好吧,我已經改變了pathToScript和url變量,現在它似乎工作,但只在IE中你知道該怎麼做才能在其他瀏覽器上工作嗎?有問題,因爲我通常在linux工作 – Jonaev

+0

我也不是一個很大的IE粉絲,但它適用於IE,Chrome和FireFox。我還沒有在Safari中進行過測試,但所有的意圖和目的都應該起作用。雖然說,你可能需要清除緩存(我知道,舊的關機和重新啓動註釋),看看是否有幫助你。如果有任何改變,然後pos sibile,jQuery(document.body).append改爲... – Amd4632