self.location is null
Version imprimable
self.location is null
8O quel navigateur ??
montre nous un peu plus du contexte ...
J'utilise firefox comme naviguateur.
Et sinon je travaille sur un projet drupal
Je serais curieux de voir comment tu le mets en oeuvre dans ton code ...
parce que ceci:
Fonctionne ... testé et approuvé !!Code:<div onclick="self.location.href='http://www.google.fr'">google</div>
Le code suivant fonctionne :
Le problème est que je veux dans un premier temps fermer une popup et ensuite rediriger l'utilisateur. Voici mon code :Code:<div onclick="self.location.href='http://www.google.fr'">Test</div>
J'ai ce message d'erreur self.location is nullCode:<div onclick="parent.Lightbox.end();self.location.href='http://www.google.fr'">Test</div>
Ca fait 2 page qu'on a compris que ton code plantait mais on ne sait toujours pas d'où sort ton lightbox.
T'as pas envie de nous montrer ton code ?
(Et si ton lightbox provient d'une librairie de nous dire laquelle ?)
Edit: Tu utilises des (i)frames ? (puisque tu utilises l'objet "parent")
je répondais au message précédent, j'utilise le module lightbox2 de drupal
http://drupal.org/project/lightbox2
et ça tout seul ça fonctionne ?
ça ferme bien ton popup ???Code:<div onclick="parent.Lightbox.end();">Test</div>
ou popin car lightbox est un popin donc le parent ne se justifie pas selon moi...
du coup l'instruction plante et le href n'est pas invoqué ..
Dans ce cas, à quoi est censé correspondre parent ?
en fait dans le module lightbox pour fermer la popup ils font ceci :
Voilà pourquoi j'utilise parent. Cela fonctionne ça ferme bien ma popup. Mais le problème c'est qu'après je ne parviens pas à rediriger l'utilisateur car effectivement le parent.Lightbox.end() semble rendre self.location nullCode:parent.Lightbox.end();
Non ^^ c'est juste que la référence à parent n'existe plus dans ce nouveau contexte d'exécution, et donc JS plante en essayant d'accéder à la propriété LightBox d'un objet undefined ^^ et la suite n'est simplement pas exécutée...
arf du coup je dois m'y prendre comment?
un bout de code sorti de son contexte et en effet ton parent n'a aucun sens ...
Attention, si la fenêtre en cours est celle de plus haut niveau, alors
;)Code:parent === self === window
Donc parent existe toujours.
je peux fermer la popup qu'en utilisant parent. Autrement ça ne fonctionne pas.
sans voir le code on ne peux que supputer (non c'esty pas un gros mot !)
désolé de ne pas être très précis, je galère un peu là. Je viens de voir en parcourant le dom avec firebug qu'il y a une iframe effectivement.
Ton code html généré est-il un top secret que tu ne pourras pas le divulguer ici pour que l'on puisse t'aider un peu?
voici mon code complet :
et donc ça, c'est le code d'une page que j'affiche via le module lightbox2 que voici :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <?php global $base_url; ?> <div class="home" onClick="parent.Lightbox.end();"></div> <div id="wrapper"> <div id="status_bar"> </div> <div class="navigationbar_filter"> </div> <div class="navigationbar_background"> <p><?php echo $data['nom'] ?></p> </div> <div class="content_product_sheet"> <?php foreach($data['zones'] as $zone){ $id1 = "zone".$zone['nom']; echo"<div class='".$id1."' title='".$zone['nom']."' onclick='javascript:clickEvent()';></div>"; } ?> </div> <div id="footer" onclick="javascript:afficher_cacher('footer')";> </div> </div>
http://drupal.org/node/1311756