2015-11-03 106 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之间的差异。