Parametre d'une fonction javascript

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


dorian53
WRInaute accro
WRInaute accro
 
Messages: 1901
Inscription: Dim Avr 10, 2005 16:56

Parametre d'une fonction javascript

Message le Sam Déc 30, 2006 0:19

Bonjour,

A-t-on le droit de définir une valeur par défaut dans la déclaration d'une fonction.

Code: Tout sélectionner
function getAjax(page, method = 0, params = null)


Car voici la console d'erreurs.

Erreur : missing ) after formal parameters
Fichier source : http://localhost/ajax.js
Ligne : 22, Colonne : 30
Code source :
function getAjax(page, method = 0, params = null) {


Merci.


Jeviensderio
WRInaute accro
WRInaute accro
 
Messages: 1340
Inscription: Ven Sep 29, 2006 12:50

Message le Sam Déc 30, 2006 20:04

Apparemment non!

Mais JavaScript permet d'appeler une fonction avec moins d'arguments que le nombre d'arguments dans la définition.

function getAjax(page, method, params)

getAjax(x);

Il reste à définir les valeurs par défaut autrement.


dorian53
WRInaute accro
WRInaute accro
 
Messages: 1901
Inscription: Dim Avr 10, 2005 16:56

Message le Dim Déc 31, 2006 23:16

Oké merci, j'ai repris l'exemple d'ici http://siddh.developpez.com/articles/ajax/#LIII à la différence que je souhaite que le résultat soit retourné et non affiché avec alert();

Le problème est que j'obtiens undefined à chaque fois.

Code: Tout sélectionner
function getXhr(){
   var xhr = null;
   if(window.XMLHttpRequest)
      xhr = new XMLHttpRequest();
   else if(window.ActiveXObject){
      try {xhr = new ActiveXObject('Msxml2.XMLHTTP');}
           catch (e) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
   }
   else {
      alert('Votre navigateur ne supporte pas les objets XMLHttpRequest.');
           xhr = false;
   }
   return xhr;
}


Ce return ici
Code: Tout sélectionner
function getAjax(page) {
   var xhr = getXhr();
   xhr.onreadystatechange = function() {
      if(xhr.readyState == 4 && xhr.status == 200) {
         return xhr.responseText;
      }
   }
   if (method == 0)
      xhr.open('GET', page, true);
   else
      xhr.open('POST', page, true);
   xhr.send(params);
}

Code: Tout sélectionner
function test() {
   alert(getAjax('a.php'));
}


Jeviensderio
WRInaute accro
WRInaute accro
 
Messages: 1340
Inscription: Ven Sep 29, 2006 12:50

Message le Lun Jan 01, 2007 12:14

Quand on utilise la méthode GET, le paramètre de send() doit être null.
Quand on utilise POST, il faut appeller aussi la méthode setRequestHeader.

Utiliser Ajax dans ces conditions est de toutes façons assez compliqué. Voir pour plus d'explications (c'est assez long):

http://www.xul.fr/xml-ajax.html

et les multiples démos.


dorian53
WRInaute accro
WRInaute accro
 
Messages: 1901
Inscription: Dim Avr 10, 2005 16:56

Message le Lun Jan 01, 2007 13:25

Oké merci, je l'avais bien mis à null dans mon test.

En fait oui, ce que je veux faire ne peut fonctionner via l'ajax asynchrone...


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités