我正在为 Java servlet 编写 HTML 代码。我首先在 html/js 中编写代码,以便可以调试我正在处理的内容,然后将其设为 Java 字符串并将其放入我的 servlet 中。我的问题是,当我在 Firefox 中从本地 html 文件查看代码时,代码工作正常,但是当我在 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;
}
最佳答案
您缺少分号:
var sMax
和
var arg = servletArguments
关于javascript - 如果这段 JS 代码都在同一行,为什么它不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2452805/