2015-11-03 84 views
-1

我很難嘗試調試一個Javascript函數。這是從一個TomCat 7.0 Servlet運行的,所以我必須用Java編寫它,所以我爲可憐的樣式道歉。實際的Java文件將目錄的內容顯示給瀏覽器,通過點擊id =「foldername」的div,它應該將該值傳遞給URL以重新加載該文件夾的頁面。唯一的問題是,Java腳本不斷給我下面列出的問題。製作一個Javascript文件瀏覽器

<head></head><body><script> function explore(s){ //Trying to make this function work keeps throwing Uncaught Type Error: cannot read property 'id' of null 
var x = document.getElementById(s).id; 
var newUrl= document.URL.concat(x); 
window.location = newUrl; window.alert(x)}</script><list> 
<li id="bin"><div id="plus" onclick="explore(bin)">+</div> bin</li> 
<li id="conf"><div id="plus" onclick="explore(conf)">+</div> conf</li> 
<li id="lib"><div id="plus" onclick="explore(lib)">+</div> lib</li> 
<li id="LICENSE"><div id="plus" onclick="explore(LICENSE)">+</div> LICENSE</li> 
<li id="logs"><div id="plus" onclick="explore(logs)">+</div> logs</li> 
<li id="NOTICE"><div id="plus" onclick="explore(NOTICE)">+</div> NOTICE</li> 
<li id="temp"><div id="plus" onclick="explore(temp)">+</div> temp</li> 
<li id="tomcat.ico"><div id="plus" onclick="explore(tomcat.ico)">+</div> tomcat.ico</li> 
<li id="Uninstall.exe"><div id="plus" onclick="explore(Uninstall.exe)">+ </div> Uninstall.exe</li> 
<li id="webapps"><div id="plus" onclick="explore(webapps)">+</div> webapps</li> 
<li id="work"><div id="plus" onclick="explore(work)">+</div> work</li> 
</list><FORM><INPUT Type="button" VALUE="Back" onClick="history.go(-1);return true;"></FORM></body> 
+1

''我不得不用Java編寫它......「 - 」用Java編寫它「是什麼意思?它看起來完全像JavaScript。 –

+0

對不起,這是從一個Tomcat 7.0 Serverlet運行,我將編輯以反映這一點。 – accountget

回答

1

你應該字符串傳遞給你的函數爲getElementById需要字符串ID:

explore('LICENSE'); 

將此向explore功能所有電話(用單引號參數)。否則javascript會將該參數視爲一個變量,並且由於您未聲明這些變量,因此所有函數都正在接收undefined

+0

謝謝你的工作! – accountget

+0

沒問題。樂意效勞 :) – taxicala

0

請記住,onclick中的代碼是實際的JavaScript代碼。因此explore(Uninstall.exe);正試圖找到存儲在uninstall中的對象exe。你應該在這裏使用引號:explore('Uninstall.exe');。他們都一樣。

順便提一句,Java在這裏完全不相關,您應該學習Java和JavaScript之間的差異。