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

HTML Discussion :

Communication inter-widgets au sein d'un portail type iGoogle [HTML 5]


Sujet :

HTML

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Points : 15
    Points
    15
    Par défaut Communication inter-widgets au sein d'un portail type iGoogle
    Bonjour à tous,

    Je suis en train de développer des widgets censés fonctionner sur un portail de type iGoogle ou NetVibes.

    J'aimerais faire communiquer 2 widgets entre eux, en utilisant la fonction introduite dans HTML5: window.postmessage();

    Cette fonction nécessite que l'on dispose des "coordonnées" de la fenêtre du widget destinataire. Il faut donc que le widget expéditeur récupère cette fenêtre auprès du portail (car elle n'est pas dans son référentiel).

    Le problème est que mes 2 widgets sont situés sur un serveur A, différent du serveur B sur lequel est hébergé le portail (et sur lequel je n'ai pas la main).

    Ainsi, lorsque j'essaye de récupérer l'iframe du widget destinataire auprès du portail, je me heurte à un problème de cross-domain.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var destinataire = window.parent.getElementById("widgetDestinataire");
     
    Error: Permission denied for <domaineDuWidgetExpediteur> to get property Window.getElementById from <domaineDuPortail>.
    Y-a-t'il un moyen de contourner ce problème dans ce cas spécifique? Peut-être qu'utiliser postmessage n'est pas la bonne solution: dans ce cas merci de m'orienter vers d'autres pistes plus adpatées!

    Merci d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Personne?

    J'ai pensé à utiliser une espèce de "widget proxy", pour contourner ce problème de cross domain, cela parle-t-il à quelqu'un?

    Merci d'avance

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Bonjour à tous,

    J'ai finalement résolu le problème: il faut passer par le portail, en utilisant la méthode window.parent.frames (qui est accessible même en cross domain).

    Il faut ensuite utiliser l'attribut 'name' (le seul à ne pas être affecté par le same domain policy) pour cibler le widget destinataire, ou alors tout simplement envoyer le message à tous les widgets du portail (un peu bourrin mais ça marche).

    En esperant que cela puisse aider quelqu'un!

    Cordialement

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

Discussions similaires

  1. [windows] Communication inter-processus
    Par litbos dans le forum Windows
    Réponses: 6
    Dernier message: 16/01/2007, 09h13
  2. [débutant] Communication inter-processus
    Par tooney dans le forum C
    Réponses: 3
    Dernier message: 29/12/2005, 20h48
  3. Communication inter-fenêtre
    Par NeoMan dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/08/2005, 14h35
  4. communication inter-processus
    Par benoit70 dans le forum MFC
    Réponses: 1
    Dernier message: 14/04/2005, 09h55
  5. [MFC] communication inter exe
    Par Kevgeii dans le forum MFC
    Réponses: 2
    Dernier message: 06/01/2004, 16h47

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