IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Adaptation JavaScript sous Android


Sujet :

Android

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Par défaut Adaptation JavaScript sous Android
    Bonjour,

    Je souhaite utiliser sur une tablette (ACER) Android une page HTML + JS qui fonctionne bien sous IE8.
    La fonction ci-dessous n'exécute que la deuxième commande sous Android alors que IE8 exécute bien les deux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function sat_ch()
    {
    window.location.href="sat_ch.htm?cmd=W2*0*63*0ir|" 
    window.location.href="sat_ch.htm?cmd=W02RS|1*2!" 
    return 0;
    }
    En fait quelque soit le nombre de liens "window.location.href=..." que je mets dans une fonction, Android ne prend en compte que le dernier.
    Quelqu'un a-t-il une explication et/ou une solution ?
    Merci d'avance

    Ludo

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Bonjour,

    As tu essayer de voir ce que donne le debugage pas a pas?

    Essaye ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function sat_ch()
    {
    alert("alert 0");
    window.location.href="sat_ch.htm?cmd=W2*0*63*0ir|"; 
    alert("alert 1");
    window.location.href="sat_ch.htm?cmd=W02RS|1*2!";
    alert("alert 3");
    return 0;
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Par défaut
    Merci David de t'intéresser à mon problème.
    J'ai testé, les trois alertes apparaissent bien mais la ligne window.location.href="sat_ch.htm?cmd=W2*0*63*0ir|"; est toujours ignorée.

    Bonne journée

    Ludo

  4. #4
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    C'est etrange. Pour etre sure qu'elle est ignorée essaye ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function sat_ch()
    {
    window.location.href="sat_ch.htm?cmd=W2*0*63*0ir|"; 
    alert(window.location.href);
    window.location.href="sat_ch.htm?cmd=W02RS|1*2!";
    alert(window.location.href);
    return 0;
    }
    Mais si les alert sont passés alors il a executé la ligne!
    Je suis curieux de savoir comment ca se fait!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Par défaut
    Bonjour David,

    résultats:

    -sur un PC Windows les deux fonctions sont éxécutées avec les deux alertes indiquant le chemin et le nom de la page html.
    -sur la tablette Android seule la deuxième fonction est éxécutée mais les deux alertes sont bien affichées avec les mêmes informations que sur le PC.

    Précision: sur le PC les 4 actions s'éxécutent bien dans l'ordre chronologique par contre sur la tablette ce n'est pas le cas, j'ai d'abord la première alerte puis la deuxième alerte puis l'avant dernière instruction ( window.location.href="sat_ch.htm?cmd=W02RS|1*2!"; )

    Bon dimanche

    Ludo

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Je ne sais pas d'ou viennent ces fonctions, mais c'est assez normal....

    Sais-tu ce que font ces fonctions ?

    window.location.href permet de "modifier" l'url pointée par le browser....
    Suivant la "vitesse" du js et celle du browser, il se *peut* que le browser ait le temps de taper la premiere url avant de faire l'autre.
    Selon l'implémentation, il est aussi possible que le js attende un "retour" de la premiere affectation (le browser tape l'url) avant d'effectuer la seconde... OU PAS !!!

    Pourquoi ou pas... parceque le browser attend peut etre sagement la fin d'execution des JS pour se raffraichir, voir que l'url de la fenetre a changé et recharger la page !!!

    Tout ca pour dire qu'a la lecture du script, le me semble que le but n'est que de hitter la premiere url avant de rediriger l'utilisateur sur la seconde...
    Si le but c'est d'aller "hitter" une URL, il y a des fonctions javascript pour ca (AJAX en abuse) sans aller tripatouiller l'url du browser (qui ne fait que bouffer du CPU pour rien).. Si le but c'est de rajouter une page "back" dans l'historique, là encore, il y a des fonctions javascripts adaptées...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Par défaut
    Bonjour,
    Ces commandes permettent à un mini serveur web d'envoyer des ordres infra rouge ou RS232 à d'autres appareils. En résumé cela permet de piloter des appareils audiovisuels au travers d'une page web, par exemple, si je clique sur la touche "satellite", ça envoit un code RS232 pour sélectionner l'entrée sat d'une grille de commutation puis ça envoit un code infra rouge à un moniteur pour le mettre sur la bonne entrée.
    En fait la page affichée n'a pas trop d'importance dans ce cas. Ce qui m'intéresse c'est d'envoyer au moins 2 codes par bouton, ce que fait très bien Windows mais pas Android.

    Bonne soirée
    Ludo

  8. #8
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par blacktigris Voir le message
    En fait la page affichée n'a pas trop d'importance dans ce cas. Ce qui m'intéresse c'est d'envoyer au moins 2 codes par bouton, ce que fait très bien Windows mais pas Android.
    Oui... mais justement... modifier "window.location.href" c'est demander au browser d'afficher une autre url... c'est tout !
    Si tu demandes trop vite une deuxieme url et que le browser est suffisemment intelligent, il ne va affichier (et ne faire la requete) que pour la deuxieme URL.

    Il faut faire un truc genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function1()
        xmlHttp = new XMLHttpRequest();  
        xmlHttp.onreadystatechange = function2; 
        xmlHttp.open( "GET", Url1, true ); 
        xmlHttp.send( null ); 
     
    function2()
        xmlHttp = new XMLHttpRequest();  
        xmlHttp.open( "GET", Url2, true ); 
        xmlHttp.send( null );
    Ou un truc du genre (j'ai quasi tout oublié de js).

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Par défaut
    Bonjour,
    J'ai résolu mon problème avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function sat_ch()
    {
      window.location.href="?cmd=W02RS|1*2!";
      open("sat_ch.htm?cmd=W2*0*63*0ir|"); 
      return 0;
    }
    Merci à ceux qui se sont intéressés à mon problème

    Ludo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Javascript sous android
    Par el_julian dans le forum Android
    Réponses: 1
    Dernier message: 14/10/2014, 12h37
  2. Menu javascript inactif sous android
    Par Steph54321 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/09/2012, 09h20
  3. javascript sous android
    Par kiwkiw dans le forum Android
    Réponses: 4
    Dernier message: 29/04/2011, 11h08
  4. [PHP-JS] Popup Javascript sous condition PHP
    Par franfr57 dans le forum Langage
    Réponses: 3
    Dernier message: 16/05/2006, 15h29
  5. visualiser du javascript sous jbuilder
    Par antigone dans le forum JBuilder
    Réponses: 5
    Dernier message: 26/06/2003, 18h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo