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

JavaScript Discussion :

Browser bloqué par une iFrame.src


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Points : 256
    Points
    256
    Par défaut Browser bloqué par une iFrame.src
    Bonjour à vous,

    j'ai un problème lorsque j'utilise les iFrame, notamment avec leur propriété "src", pour changer leur contenu.

    On considère ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <iframe width="40px" height="20px" scrolling="no" frameborder="0" id="frmInfo" name="frmInfo" src="nothing.htm"></iframe>
    PS : nothing.htm n'est qu'une page html vierge, n servant qu'à initialiser le contenu de la iframe à rien.

    Je change le contenu affiché dans cette frame grâce à la fonction JS suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function RedirectPageToTarget( Page, Target )
    {
    	var obj = document.getElementById( Target );
    	if( obj )
    	{
    		var url = 'http://192.168.192.1/' + Page + '&RAND=' + Math.random();
    		obj.src = "";
    		obj.src = url;
    	}
    }
    en l'appelant comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RedirectPageToTarget( "sendAutomCmd.php?TYPE=GET&CMD=HVAC&PARAM=AMBIENT", "frmInfo");
    Il n'y a aucun problème si le serveur WEB est accessible.
    Par contre s'il ne l'est pas, le browser se bloque ad vitam aeternam, et même lorsque le serveur WEB revient, il reste bloqué.

    Il faut noter que le browser pour lequel je dois développer l'appli est un mini-browser, propriétaire, et relativement peu évolué (ne supportant pas AJAX par exemple, d'où l'idée de passer par les iFrame pour envoyer des commandes).

    Que pensez-vous de ce problème ? Comment puis-je le résoudre / contourner ?

    Merci par avance,
    @+

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par olive_le_malin Voir le message
    heu .... personne ?
    Désolé de te décevoir, mais apparemment ta question est : "comment accéder à une page quand le serveur est inaccessible" et du coup, je pense que vraiment non, personne ne peut t'aider !

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    à part mettre un setInterval pour tester le chargement de la page ...

    Sinon comme le dit Beef, ta question serait un peu comme :
    Comment accéder à internet sans connection.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Points : 256
    Points
    256
    Par défaut
    Pas tout à fait ...

    La question serait plutôt : "comment faire pour que le browser ne soit pas bloqué ad vitam aeternam lorsque le serveur n'est pas accessible ?
    Note : sur IE, Firefox ... aucun pb : lorsque le serveur n'est pas accessible, la iframe charge une page d'erreur !! mais le browser n'est pas bloqué.

    @+

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    passe par ajax au moins tu pourras tester le readystatus ...

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Points : 256
    Points
    256
    Par défaut
    Salut,
    ben ouais je sais bien, et j'aurais bien voulu ...
    Mais j'ai justement utilisé ça car ce browser de me... ne supporte pas AJAX !! Et je pense qu'il s'agit de la seule et unique alternative ...

    @+

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Oui, mais dans la mesure où ton navigateur
    est un mini-browser, propriétaire, et relativement peu évolué
    qu'on ne connait pas, il est difficile de te répondre efficacement...

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    alors un setInterval dans la page top qui teste le document.body de l'iframe ...
    au bout d'un temps que tu détermines (nombre d'occurences du setInterval) tu considères la connection comme morte et tu fais un clearInterval ?

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Points : 256
    Points
    256
    Par défaut
    salut,
    donc si je comprends bien ton test, il me faut ajouter dans la page chargée dans l'iFrame un onLoad dans son body ? Ou peut être peut-on le tester encore + directement depuis la fenêtre parent ?

    Sinon, pour le browser, c'est ce truc là "EBSnet WebC".

    @+

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    depuis la parent !!

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Points : 256
    Points
    256
    Par défaut
    Salut,

    donc ma fonction ressemblerait à ça (avec un setTimeout, remplaçable par un setInterval) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    function CheckLoaded( Target )
    {
         var obj = document.getElementById( Target );
         if( obj && obj.document.body )
         {
             //OK
         }
         else
         {
             //FAILED, mais que faire ???
         }
    }
     
    function RedirectPageToTarget( Page, Target )
    {
    	var obj = document.getElementById( Target );
    	if( obj )
    	{
    setTimeout('CheckLoaded('+Target+')', 2000);
     
    		var url = 'http://192.168.192.1/' + Page + '&RAND=' + Math.random();
    		obj.src = "";
    		obj.src = url;
    	}
    }

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Points : 256
    Points
    256
    Par défaut
    Bon en fait ça ne fonctionne pas car le browser est litteralement "freezé" tant qu'il essaie de charger la page ... et ne fait plus rien !

Discussions similaires

  1. Page web infectée par une iframe quelle solution?
    Par papisdoums dans le forum Sécurité
    Réponses: 12
    Dernier message: 24/04/2009, 15h20
  2. Directory Bloquée par une Application
    Par ledebutant07 dans le forum VB.NET
    Réponses: 3
    Dernier message: 24/11/2008, 21h29
  3. Réponses: 13
    Dernier message: 30/01/2008, 14h46
  4. [Timer] timer bloqué par une boucle for?
    Par Jidefix dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 18/09/2006, 17h12
  5. Etat bloqué par une table
    Par aujero dans le forum Access
    Réponses: 4
    Dernier message: 06/02/2006, 17h53

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