我正在为java servlet编写HTML代码。我首先用html / js编写代码,这样我就可以调试我正在进行的工作,然后生成一个java字符串并将其放入我的servlet中。我的问题是,当我从本地html文件中查看ff时,代码工作正常,但是当我在我的java servlet上查看它时,它不起作用,因为js没有被调用。
我所做的是格式化我的servlet生成的html,以便它不是全部在一行上并再次运行代码。这次它奏效了。我将这个工作代码复制到一个浏览器地址栏中,这样它就可以在一行上,并将该代码复制回我的html文件中的脚本中。现在,当以前工作的代码在一行上时,它不起作用。
这是格式化的JS:
var sMax
var holder;
var preSet;
var rated;
var request;
function rating(num){
sMax = 0;
for(n=0; n<num.parentNode.childNodes.length; n++){
if(num.parentNode.childNodes[n].nodeName == "A"){
sMax++;
}
}
if(!rated){
s = num.id.replace("_", '');
a = 0;
for(i=1; i<=sMax; i++){
if(i<=s){
document.getElementById("_"+i).className = "on";
document.getElementById("rateStatus").innerHTML = num.title;
holder = a+1;
a++;
}else{
document.getElementById("_"+i).className = "";
}
}
}
}
function off(me){
if(!rated){
if(!preSet){
for(i=1; i<=sMax; i++){
document.getElementById("_"+i).className = "";
document.getElementById("rateStatus").innerHTML = me.parentNode.title;
}
}else{
rating(preSet);
document.getElementById("rateStatus").innerHTML = document.getElementById("ratingSaved").innerHTML;
}
}
}
function rateIt(me){
if(!rated){
document.getElementById("rateStatus").innerHTML = document.getElementById("ratingSaved").innerHTML + " "+me.title;
preSet = me;
rated=1;
sendRate(me);
rating(me);
}
}
function sendRate(sel){
alert("Your rating was: "+sel.title);
addRating("rating", "?truck=kogibbq?rating="+ sel.id);
}
function addRating(servletName, servletArguments){
var servlet = servletName;
var arg = servletArguments
var req = servlet + arg;
alert(req);
addrequest(req);
request.onreadystatechange = function(){
alert("response received");
}
}
function addrequest(req) {
try {
request = new XMLHttpRequest();
}catch (e) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e) {
alert("XMLHttpRequest error: " + e);
}
}
request.open("GET", element, true);
request.send(null);
return request;
}
感谢。
答案 0 :(得分:4)
你错过了分号:
var sMax
和
var arg = servletArguments
答案 1 :(得分:2)
Sarfraz已经在此代码中指出了交易破坏者,但对于将来出现的类似问题,我建议将代码粘贴到JSLint中进行验证。
它会发现很多错误,这些错误实际上不会破坏你的代码(但是除非你把整个脚本放在一行中,否则也不会缺少分号),所以你不需要修复每一条备注只是为了让它工作,但当然,如果你能按照确切的JSLint建议,这通常很棒。
答案 2 :(得分:0)
您的javascript文件的第一行中缺少;
。