Javascript:语法错误缺少}函数体后 [英] Javascript: Syntax error missing } after function body

查看:355
本文介绍了Javascript:语法错误缺少}函数体后的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好的,所以您知道错误了,但是为什么我会得到它呢?当它在本地运行时,我什么都没有收到,但是当我上传项目时,却收到了这个令人讨厌的语法错误.我检查了萤火虫错误控制台,它没有用,因为它将所有源都放在同一行上,并且我已经通过Lint对其进行了解析,而Lint似乎也没有发现问题-我只是格式化了花括号我讨厌的方式有所不同;在语句的同一行,令人沮丧.

Ok, so you know the error, but why on earth am I getting it? I get no errors at all when this is run locally but when I uploaded my project I got this annoying syntax error. I've checked firebug error console, which doesn't help because it put all my source on the same line, and I've parsed it through Lint which didn't seem to find the problem either - I just ended up formatting my braces differently in a way that I hate; on the same line as the statement, bleugh.

function ToServer(cmd, data) {
    var xmlObj = new XMLHttpRequest();
    xmlObj.open('POST', 'handler.php', true);
    xmlObj.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    xmlObj.send(cmd + data);
    xmlObj.onreadystatechange = function() {
        if(xmlObj.readyState === 4 && xmlObj.status === 200) {
            if(cmd == 'cmd=push') {
                document.getElementById('pushResponse').innerHTML = xmlObj.responseText;
            }
            if(cmd == 'cmd=pop') {
                document.getElementById('messages').innerHTML += xmlObj.responseText;
            }
            if(cmd == 'cmd=login') {
                if(xmlObj.responseText == 'OK') {
                    self.location = 'index.php';
                }
                else {
                    document.getElementById('response').innerHTML = xmlObj.responseText;
                }
            }           
        }
    }
}

function Login() {
    // Grab username and password for login
    var uName = document.getElementById('uNameBox').value;
    var pWord = document.getElementById('pWordBox').value;
    ToServer('cmd=login', '&uName=' + uName + '&pWord=' + pWord);
}


// Start checking of messages every second
window.onload = function() {
    if(getUrlVars()['to'] != null) {
        setInterval(GetMessages(), 1000);
    }
}

function Chat() {
    // Get username from recipient box
    var user = document.getElementById('recipient').value;
    self.location = 'index.php?to=' + user;
}

function SendMessage() {
    // Grab message from text box
    var from = readCookie('privateChat');
    var to = getUrlVars()['to'];
    var msg = document.getElementById('msgBox').value;
    ToServer('cmd=push','&from=' + from + '&to=' + to + '&msg=' + msg);
    // Reset the input box
    document.getElementById('msgBox').value = "";
}

function GetMessages() {
    // Grab account hash from auth cookie
    var aHash = readCookie('privateChat');
    var to = getUrlVars()['to'];
    ToServer('cmd=pop','&account=' + aHash + '&to=' + to);
    var textArea = document.getElementById('messages');
    textArea.scrollTop = textArea.scrollHeight;
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[key] = value;
    });
    return vars;
}

凡能解决此问题的人都可以获得一枚互联网金牌.

One gold internet medal to whoever can solve this.

干杯.

推荐答案

问题是服务器中的脚本位于一行中,并且其中包含注释.//之后的代码将被视为注释.这就是原因.

The problem is your script in your server is in one line, and you have comments in it. the code after // will be considered as comment. That's the reason.

function ToServer(cmd, data) {  var xmlObj = new XMLHttpRequest();  xmlObj.open('POST', 'handler.php', true);   xmlObj.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');   xmlObj.send(cmd + data);    xmlObj.onreadystatechange = function() {        if(xmlObj.readyState === 4 && xmlObj.status === 200) {          if(cmd == 'cmd=push') {             document.getElementById('pushResponse').innerHTML = xmlObj.responseText;            }           if(cmd == 'cmd=pop') {              document.getElementById('messages').innerHTML += xmlObj.responseText;           }           if(cmd == 'cmd=login') {                if(xmlObj.responseText == 'OK') {                   self.location = 'index.php';                }               else {                  document.getElementById('response').innerHTML = xmlObj.responseText;                }           }                   }   };}function Login() {   // Grab username and password for login var uName = document.getElementById('uNameBox').value;  var pWord = document.getElementById('pWordBox').value;  ToServer('cmd=login', '&uName=' + uName + '&pWord=' + pWord);}// Start checking of messages every secondwindow.onload = function() {    if(getUrlVars()['to'] != null) {        setInterval(GetMessages(), 1000);   }}function Chat() { // Get username from recipient box  var user = document.getElementById('recipient').value;  self.location = 'index.php?to=' + user;}function SendMessage() {    // Grab message from text box   var from = readCookie('privateChat');   var to = getUrlVars()['to'];    var msg = document.getElementById('msgBox').value;  ToServer('cmd=push','&from=' + from + '&to=' + to + '&msg=' + msg); // Reset the input box  document.getElementById('msgBox').value = "";}function GetMessages() {  // Grab account hash from auth cookie   var aHash = readCookie('privateChat');  var to = getUrlVars()['to'];    ToServer('cmd=pop','&account=' + aHash + '&to=' + to);  var textArea = document.getElementById('messages'); textArea.scrollTop = textArea.scrollHeight;}function readCookie(name) {    var nameEQ = name + "=";    var ca = document.cookie.split(';');    for(var i=0;i < ca.length;i++) {        var c = ca[i];        while (c.charAt(0)==' ') c = c.substring(1,c.length);        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);    }    return null;}function getUrlVars() {    var vars = {};    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {        vars[key] = value;    });    return vars;}

这篇关于Javascript:语法错误缺少}函数体后的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆