Javascript: erreur de Syntaxe manquant } après le corps de la fonction
Ok, donc vous savez que l'erreur, mais pourquoi diable suis-je l'obtenir? Je n'obtiens pas d'erreur du tout quand cela est exécuté en local mais quand je l'ai transféré mon projet, j'ai cette fâcheuse erreur de syntaxe. J'ai vérifié firebug erreur de la console, ce qui n'aide pas parce qu'elle a mis toute ma source sur la même ligne, et j'ai analysé à travers les Peluches qui ne semblent pas à trouver le problème - j'ai juste fini le formatage de mon accolades différemment, d'une façon que je déteste; sur la même ligne que la déclaration, 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;
}
Une d'or, l'internet médaille à celui qui peut résoudre ce problème.
Acclamations.
À quel point l'erreur est à venir? Au chargement de la page ou sur un événement utilisateur.
C'est au chargement de la page. Dès que le chargement de la page web firefox developer console donne un vague message d'erreur de syntaxe.
Pourriez-vous montrer votre site?
bien sûr, www.fort-hub.com/privatechat/index.php
C'est au chargement de la page. Dès que le chargement de la page web firefox developer console donne un vague message d'erreur de syntaxe.
Pourriez-vous montrer votre site?
bien sûr, www.fort-hub.com/privatechat/index.php
OriginalL'auteur Lee | 2012-08-14
Vous devez vous connecter pour publier un commentaire.
Le problème est de votre script dans votre serveur est en ligne, et vous avez des commentaires. le code après
//
sera considérée comme un commentaire. C'est la raison.Je pense que vous l'avez droit. @Lee r u à l'aide de tout minification outil pour le faire le faire le code 1 liner?
Non, rien du tout. Je vais devoir utiliser /* */ puis.
Peut-être la nouvelle ligne de différences (Windows et Unix)?
Oui. Je vous suggère d'utiliser un outil comme jsmin minifier le code
OriginalL'auteur xdazz
Je pense que vous pouvez adapter diviser pour régner méthodologie ici. Supprimer la dernière moitié de votre script et voir si l'erreur est venue, si pas retirer la première partie et de voir. C'est une technique qui je suit quand j'ai une question comme ça. Une fois que vous trouver la moitié avec l'erreur subdivise ensuite que la moitié plus loin jusqu'à vous cerner le point de l'emplacement de l'erreur.
Cela va nous aider à identifier le moment de l'erreur.
Je ne vois pas de problème avec ce script.
Cela peut ne pas être la solution exacte que vous voulez, mais un moyen de localiser et résoudre votre problème.
Je ne vois pas de problème dans le script, je vais vérifier de nouveau.
Pouvez-vous partager le réel sans mise en forme de script (un liner) tag de votre page.
GÉNIAL juste appliqué diviser et conquérir de 5000 script de ligne de - de 10 minutes, où j'ai été perdu avant; c'est très logique mais parfois l'accent (sur le débogage) rend aveugle...
OriginalL'auteur Arun P Johny
On dirait qu'il est interprété comme étant le tout sur une seule ligne. Voir les mêmes résultats dans fiddler2.
OriginalL'auteur JayC
Il vous manque un point-virgule:
Supplémentaires manque un point-virgule:
Manquer la demi ne cause pas d'erreur de syntaxe.
Que manque semi causer une erreur dans certains navigateurs. JSLint ramasse sur elle ainsi.
Torres: pas dans ce cas
Torres: tant que le caractère suivant est la fermeture de la courbe de support de fonction externe - oui
OriginalL'auteur Jaime Torres
Semble qu'il devrait y être ajouté un autre semi dans le code suivant à trop
Aussi ici, dans ce code, définir les
var
haut de la fonctionEspère que cela va vous aider à
Je ne sais pas exactement, mais dans mon IDE, j'ai activé le Débogueur Javascript et il montre ce sont les erreurs. J'utilise Aptana Studio 3
Hm je pense que j'ai trouvé un indice... je suis à l'aide de notepad++ et ont jusqu'à récemment utilisé mon cpanel gestionnaire de fichiers pour l'envoi de mes fichiers. Tout allait bien jusqu'à ce que j'ai utilisé FireZilla client FTP. Je suis en supposant que le client FTP est en train de changer le format ou le codage de mon JS et PHP les fichiers.
OriginalL'auteur Mujahid
"Hm, je crois que j'ai trouvé un indice... je suis à l'aide de notepad++ et ont jusqu'à récemment utilisé mon cpanel gestionnaire de fichiers pour l'envoi de mes fichiers. Tout allait bien jusqu'à ce que j'ai utilisé FireZilla client FTP. Je suis en supposant que le client FTP est en train de changer le format ou le codage de mon JS et PHP les fichiers. – "
Je crois que c'était votre problème (vous avez probablement déjà résolu). J'ai juste essayé un autre client FTP après l'exécution de ce bug stupide, et cela a fonctionné parfaitement. Je suis en supposant que le code que j'ai utilisé (ce qui a été écrit par un autre développeur) est aussi de ne pas fermer les commentaires correctement.
OriginalL'auteur Michelle Audrey Sanders
Ce problème pourrait le faire en raison de votre code JS avoir les commentaires de minifiés. Si oui et que vous voulez gardez vos commentaires pour vous, alors essayez de changer vos commentaires - par exemple, à partir de ce:
//Reset the input box
......
/* Reset the input box */
OriginalL'auteur ban-geoengineering
L'ajout d'une remarque: très strangly cette erreur a été il y a très aléatoirement, avec tout qui fonctionne bien.
Il semble que j'utilise
/**/
et//
avec un peu de fantaisie char unicode dans les différentes parties de mes scripts pour les différents commentaires.C'est utile pour moi, pour plus de clarté et pour l'analyse.
Mais si ce de caractères unicode et probablement d'autres sont utilisés sur un fichier js dans les commentaires avant toute js exécution, l'erreur a été de frai au hasard.
Cela pourrait être lié au fait que les fichiers js ne sont pas UTF8 avant d'être appelé et lu par la page parent, c'est de l'utf-8 lorsque le DOM est prêt. Ne peut pas dire.
Si cela peut vous aider!
OriginalL'auteur Cryptopat