2010-03-08 4 views
1

J'ai fait un petit module pour utiliser un script jquery/ajax sur mon site web. Pour cela j'ai utilisé des exemples qui sont sur le site et d'autres. Le script fonctionne dans IE (pour un changement cela fonctionne là) mais je ne peux pas le faire fonctionner en FF ou en safari. Je ai essayé beaucoup de choses, mais en quelque sorte, il n'exécute jamais la fonction updatecounter Je ne suis pas un programmeur javascript alors je n'ai aucune idée où chercher. Peut-être qu'il ya des gens qui sais ce que je fais mal EssayéjQuery ajax appel ne fonctionne pas en FF et safari fonctionne en IE

if (Drupal.jsEnabled) { 
$(document).ready(function(content) { 
$('a.download').click(function() { 
// This function will get exceuted after the ajax request is completed successfully 
var updatecounter = function(data) { 
alert (data.counter); // only in IE this is displayed not in FF or Safari 
} 
alert(this.href); // this works in all browsers 
var urlget = "/counter/get”; 
$.ajax({ 
type: 'GET', 
url: urlget, 
success: updatecounter, // The js function that will be called upon success request 
dataType: 'json', //define the type of data that is going to get back from the server 
data: 'js=1' //Pass a key/value pair 
}); 
//return false; // return false so the navigation stops here and not continue to the page in the link .. This puzzles me also. If I put it in the program stops and does not continue 
}); 
}); 
} 

Chose étrange est si je change le à:

if (Drupal.jsEnabled) { 
$(document).ready(function(content) { 
$('a.download').click(function() { 
// This function will get exceuted after the ajax request is completed successfully 
var updatecounter = function(data) { 
alert (data.counter); // only in IE this is displayed not in FF or Safari 
} 
var fout = function(stat, statext) { 
alert (stat.readyState); 
alert (statext); 
} 

alert(this.href); // this works in all browsers 
var urlget = "/counter/get”; 
$.ajax({ 
type: 'GET', 
url: urlget, 
success: updatecounter, // The js function that will be called upon success request 
error: fout , // calls when error 
dataType: 'json', //define the type of data that is going to get back from the server 
data: 'js=1' //Pass a key/value pair 

}); 
//return false; // return false so the navigation stops here and not continue to the page in the link .. This puzzles me also. If I put it in the program stops and does not continue 
}); 
}); 
} 

Il va toujours FOUT et affiche le code d'erreur 4 et erreur texte . Ainsi, l'appel ajax fonctionne mais me donne toujours et erreur (uniquement en FF et Safari pas dans IE)

Je suis en train sur ce pendant quelques heures peut-être quelqu'un peut me aider Merci

+0

Avez-vous déjà découvert cela? –

+0

Quelle est l'erreur que vous obtenez de l'alerte 'fout'? –

Répondre

1

Avez-vous copie -et-colle ce code de votre page dans la question? Parce que si oui, il utilise un (fantaisie close-quote) plutôt que d'un " (citation droite) sur cette ligne:

var urlget = "/counter/get”; 

Je ne serais pas surpris si cela faisait partie du problème, ce n'est pas un Une manière valide de terminer la chaîne (une erreur facile à faire, cependant, avec quelques dispositions de clavier).

+0

Vérifié et même changé en guillemets simples, mais ne fait aucune différence. Cela semble avoir quelque chose à voir avec l'autorisation de scripts d'un domaine car il fonctionne sous IE et Opera et non avec firefox et safari. Mais je ne sais pas encore comment le vérifier et le changer. – Erald

+0

@Erald: Très étrange. Je ne vois rien d'autre d'évident, quel que soit le problème, je ne pense pas que ce soit dans le code cité - quelque chose ailleurs sur la page doit avoir un effet secondaire étrange. Bonne chance. –

0

J'ai juste eu ce problème - et ma solution était dans les noms de variables. Safari était bon avec moi en utilisant 'text' comme un nom de variable (sloppy de moi, je sais), mais il a donné une erreur dans FF.

Je poste ce pas parce que je pense que c'est nécessairement la solution au problème ci-dessus, mais juste au cas où quelqu'un trouve ce fil et fait une erreur similaire.

Questions connexes