\0_ Firefox, la communication inter-iframes et l'importance du choix de ses noms de domaines

mardi 06 décembre 2011

Là où je travaille, je développe un site interne sur le modèle de netvibes ou iGoogle, autrement dit un site avec plein de boiboites qu'on peut déplacer à sa guise.
L'affichage du contenu des boites se fait dans des iframes (ne froncez pas les sourcils, c'est chouette les iframes), qui doivent parfois communiquer en Javascript avec le site qui les contient. Normalement, ce genre de choses est strictly verboten pour des raisons évidentes de sécurité. Il existe toutefois un moyen de faire se causer tout ce petit monde si les iframes sont hébergées sur le même domaine ou dans des sous-domaines du même domaine. L'astuce consiste à renseigner la propriété Javascript document.domain des iframes et du site qui les contient avec le nom de domaine principal. Donc si votre site principal est www.toto.com et que le contenu des boites est hébergé sur boites.toto.com, il suffira de mettre "toto.com" dans document.domain.
Notez que cela doit être fait même si une page est déjà hébergée sur toto.com (le communication inter-iframes n'est pas possible tant qu'on n'a pas explicitement écrit une valeur dans document.domain).

Lors de mes tests, tout a très bien fonctionné dans Firefox, Chrome et IE, mais lorsque j'ai envoyé ça sur le serveur de test, ça ne fonctionnait plus que dans Chrome et IE. En grand philosophe, j'ai alors pensé "WTF ?! oO". Une erreur Javascript se produisait au moment où je mettais le nom de mon domaine dans document.domain : la valeur ne plaisait pas à Firefox (pour des raisons de sécurité), qui refusait donc l'écriture dans la propriété. À force de recherches, j'ai fini par atterrir dans le code de Firefox, où j'ai réalisé qu'il ne traite pas tous les noms de domaine de la même manière. En effet, pour les TLD comme celui de l'Angleterre, où le gouvernement s'est réservé *.uk et n'a laissé que les adresses en *.co.uk aux peons que nous sommes, Firefox va vérifier que le domaine que vous souhaitez inscrire dans document.domain possède bien trois composantes (genre "toto.co.uk").
Pas de bol, j'utilisais l'extension .qa, qui fonctionne comme le .uk, d'où le fait que Firefox me refuse la valeur que je souhaitais écrire dans document.domain.
On a donc changé de .qa vers .tst et hop, case closed.

Moralité, même pour des domaines à usage uniquement interne, faites attention au TLD que vous choisissez.

8 Réactions :-D

\0_ Les iris d'en face, ultime saison

mercredi 13 avril 2011

Résumé des épisodes précédents : derrière chez nop, il y a un parking dont le toit fleuri fait le bonheur de ses yeux une fois l'an.

2006 : blog.peuw.net/posts/en-ouvrant-les-volets
2007 : NullReferenceException
2008 : blog.peuw.net/posts/les-iris-d-en-face-saison-3
2009 : blog.peuw.net/posts/c-est-le-printemps
2010 : blog.peuw.net/posts/le-retour-des-beaux-jours

Une fois de plus j'antidate comme un sauvage (ce post a en réalité été envoyé le 26 avril). Les fleurs ont deux semaines d'avance cette année, mais c'est toujours aussi joli :


4 Réactions :-)

\0_ Yeahs par auteur

mardi 08 février 2011

Comme j'étais chaud, j'ai continué : on peut à présent consulter les yeahs d'un auteur en particulier. Pour ce faire, rendez vous dans la galerie et faites votre choix dans la date liste.

Cordialement,
Le webmestre, on fire.

The Herbaliser - Time 2 Build (feat. Blade)

4 Réactions :-)

\0_ Formulaire de recherche

mardi 08 février 2011

Hop, on peut à nouveau faire des recherches dans les posts, ça se passe dans la boiboite à gauche.

Cordialement,
Le webmestre.

7 Réactions :-D

\0_ En prod : voyages.peuw.net

jeudi 03 février 2011

Chose promise, chose dûe, je viens de publier le site dédié aux récits de voyages. Vous y retrouverez donc les posts relatifs aux voyages dans une interface aux couleurs chatoyantes, avec les posts classés par ordre chronologique et des gros boutons "suivant" et "précédent" pour naviguer like a boss.

Ça se passe par là :

http://voyages.peuw.net


dB soundworks - Dr. Fetus' Castle (Ch 5 Dark World)

4 Réactions :-)

« Avant