|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 22 ![]() |
Bonjour à tous,
voici mon souci : Je dois afficher un popup depuis une applet. J'utilise un en java. J'appelle une adresse de type Jusque là très bien, ça marche. Par contre mon popup appelle une jsp (qui n'est pas à moi) et qui elle se sert du window.opener pour rafraîchir ma page principale en arrière plan quand je fais mon submit. Or je ne veux pas. Sachant que je ne peux pas modifier le contenu de cette jsp, j'essaye de spécifier mais cela me rafraîchit la fenêtre appelante en mettant null dedans. Y a-t-il un moyen de supprimer cette valeur de window.opener sans provoquer le rafraîchissement de ma fenêtre appelante? Par avance merci, Jean. |
|
|
00
|
|
|
#2 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 071 ![]() |
opener est en lecture seule ...
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 22 ![]() |
Pourtant le modifier semble faisable dans la mesure où un a bien un effet sur ma fenêtre appelante.
Une modification du window.opener.location serait aussi une bonne solution, mais le problème est le même : cela entraine, et c'est bien normal, la modification de la fenêtre appelante. C'est précisément ce que je voudrais éviter... PS : je suis sous IE 8 32 bits et Windows 7 64 bits, si ça peut aider. |
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
Citation:
depuis la principale, ça n'aurait aucun sens vu que le opener doit être utilisé depuis le popup pour accèder à la principale. et depuis le popup tu dis toi même que tu n'as pas accès à la page. aussi si la page cible du popup ne t'appartient pas, elle est donc sur un domain différent non ? dans ce cas il me semble que les navigateurs empeche l'accès au opener. donc je ne comprend pas comment elle peut modifier ta page principale. bref, plus de détails nous aiderait à mieux t'aider. |
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 22 ![]() |
En fait dans ma page principale j'ai une applet, dans cette applet j'appelle l'url suivante :
Code :
javascript:var toto=window.open("uneJsp.jsp");toto.opener=null Ce que je veux c'est que par exemple toto.opener ou toto.opener.location me renvoie null, ou rien ou une url qui n'existe pas, pour que la jsp que j'affiche n'ait pas accès à cette donnée. Voilà, j'espère avoir été assez clair. Merci en tout cas! |
|
|
00
|
|
|
#6 | |||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
Citation:
IE9 en mode IE8 donne aussi "null" pour l'opener dans le popup. edit: ok, je viens de comprendre, tu as sans doute utiliser des liens (<a>) de manière SALE. // injection javascript <a href="javascript:blablabla;" >lien</a> // au lieu de la manière propre : <a href="#" onclick="blablabla;return false;">lien</a> // si néanmoins tu veux garder la manière sale pour une raison obscure, tu dois alors rajouter un "void 0" en fin de code sinon l'injection attribuera au body(ou au document?) la dernière valeur retournée par ton injection : <a href="javascript:blablabla;void 0;" >lien</a> en espérant avoir résolu ton problème qui n'avait rien à voir avec les popup, opener, ni tout ça. :-) edit2: pour l'explication complète du void 0; l'instruction void fait que l'instruction qui suit ne retourne rien, et si lors de l'injection par url, la valeur retournée est rien, alors ça n'affecte pas le body(document?). la valeur de retour d'une série d'instructions est la valeur de retour de la dernière instruction, c'est pourquoi en placant une instruction supplémentaire en fin, c'est celle-là qui sera retournée. tu peux mettre n'importe quoi à la place du "0" qui n'affectera pas ton exécution. en fait, tu pourrais simplement placer ton "void" devant ta dernière vraie instruction ou encore englober toutes tes instruction de parenthèses et de placer un void devant, comme ceci : Code :
|
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com