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 :

lytebox et redirection "invisible"


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut lytebox et redirection "invisible"
    Bonjour,

    J'ai un problème assez embêtant.
    Mon site est hébergé chez ovh : http://60gp.ovh.net/~lignebe/
    Le problème est que lorsque j'ai voulu rediriger le nom de domaine de type "insivible" http://www.ligne-be.com/ vers http://60gp.ovh.net/~lignebe/ la page sur laquelle j'utilise un script de type lightbox (lytebox de son nom) ne fonctionne plus (dans l'onglet "compétences")...

    Là où je ne comprends rien, c'est que ce script s'exécute sur la machine de l'utilisateur... Quel est le rapport avec une "simple" redirection ?


    Hébergement : http://60gp.ovh.net/~lignebe/
    Redirection : http://www.ligne-be.com/


    firebug m'indique une erreur au chargement :
    Permission refusée à <http://60gp.ovh.net> d'obtenir la propriété Window.document de <http://www.ligne-be.com>.


    à cette ligne du script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (window.parent.frames[window.name] && (parent.document.getElementsByTagName('frameset'). length <= 0)
    Plus exactement dans la fonction suivante du lytebox.js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    LyteBox.prototype.checkFrame = function() {
    	if (window.parent.frames[window.name] && (parent.document.getElementsByTagName('frameset').length <= 0)) {
    		this.isFrame = true;
    		this.lytebox = "window.parent." + window.name + ".myLytebox";
    		this.doc = parent.document;
    	} else {
    		this.isFrame = false;
    		this.lytebox = "myLytebox";
    		this.doc = document;
    	}
    };
    Avez vous une idée afin de résoudre ce problème ?

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Et ben j'ai exactement le même problème..

    As tu trouvé une solution?
    François BOSSANT

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    Citation Envoyé par Pepette2 Voir le message
    firebug m'indique une erreur au chargement :
    Permission refusée à <http://60gp.ovh.net> d'obtenir la propriété Window.document de <http://www.ligne-be.com>.
    Ca semble bien être une alerte de violation de sécurité, non ? Un domaine tente de s'accaparer un document qui n'est pas de son domaine.

    Ces deux domaine ne vont pas pouvoir partager leurs ressources.

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Ok mais le problème ne se pose qu'avec FireFox.
    IE8 tout fonctionne.

    C'est le monde à l'envers

    Ceci vient en effet du fait que la page aspx contenant le script est elle meme dans une iframe d'un site n'étant pas dans le même domaine.
    Du coup FireFox bloc le script...
    parent.document.getElementsByTagName est alors rejeté...

    Quelqu'un a une solution pour autoriser ce code?

    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
     
    //***********************************************************************************/
    // checkFrame() - Determines if we are in an iFrame or not so we can display properly
    //***********************************************************************************/
    LyteBox.prototype.checkFrame = function() {
        // If we are an iFrame ONLY (framesets are excluded because we can't overlay a frameset). Note that there are situations
        // where "this" will not refer to LyteBox, such as when buttons are clicked, therefor we have to set this.lytebox appropriately.
        if (window.parent.frames[window.name] && (parent.document.getElementsByTagName('frameset').length <= 0)) {
            this.isFrame = true;
            this.lytebox = "window.parent." + window.name + ".myLytebox";
            this.doc = parent.document;
        } else {
            this.isFrame = false;
            this.lytebox = "myLytebox";
            this.doc = document;
        }
    };
    François BOSSANT

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    J'ai trouvé l'astuce!!!

    J'ai tout simplement créé une nouvelle page aspx dans laquelle j'ai a nouveau mis une IFrame sur ma précédente page.

    Ceci évite au code java de planter vu que :
    parent.document.getElementsByTagName

    pointe sur un objet étant dans le même domaine.

    Peut être moyen comme solution mais je n'ai rien trouvé de mieux

    A bientôt
    François BOSSANT

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