11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous...

Voilà je suis vraiment au point zéro en Javascript, mais j'ai néanmoins besoin de faire la chose suivante.

J'ai une fonction qui me permet d'ouvrir une fenêtre. J'y intègre du contenu tout va bien.

J'aimerais tester dans cette fonction via javascript si cette fenêtre existe afin de ne pas la rouvrir le cas échéant mais de faire un focus dessus.

Autre question, est t-il possible d'imaginer qu'une page 1 dans le navigateur "principale" ouvre cette fenêtre, qu'en suite je change de page et que la nouvelle page affichée puisse savoir que cette fenêtre existe ?

Il va sans dire que les deux questions sont liées.

merci de votre aide et bonne après-midi. Smiley smile
J'ai pas tout compris Smiley smile , mais j'ai en définitive une autre question,

Est t-il possible en JS que x pages de partagent des variables ?

que la page 1 ouvre un popup en lui donnant une variable, et qu'en passant de la page 1 de la fenêtre principale du navigateur à la x, la x connaisse aussi cette variable qui me permettrait de faire le lien avec le popup ?

Merci Smiley confused
Bonsoir!

Sinon un bon vieu truc tout simple qui devrait aussi faire l'affaire (si j'ai bien compris ta question...) Pas besoin de JavaScript donc pas de souçis avec ceux qui le bloque!

Tu as ton lien sur ta page principal, et tu ne met pas target _blank mais target _NimporteQuoi. Comme ça ta page à ce nom (en l'ocurence NimporteQuoi) et si tu met un deuxième lien qui ne doit que remplacer cette fenêtre tu remet ton lien (le deuxième) de nouveau avec l'attribut target _NimporteQuoi (le même nom que le premier). Comme ça ta page ce fait remplacer tout simplement sans JavaScript et tout le bordel qui y est lié Smiley cligne

ça te donnerait donc en code:

page principal:

<html>
<head><title>hello</title></head>
<body>
	<a href="1.html" target="_ryan">1</a><br><br>
	<a href="2.html" target="_ryan">2</a>
</body>
</html>


page 1 (qui souvre dans la nouvelle page)


<html>
<head><title>hello</title></head>
<body>
	1
</body>
</html>


page 2 qui remplace donc le contenu de page 1 dans cette même fenetre


<html>
<head><title>hello</title></head>
<body>
	2
</body>
</html>
C'est beaucoup plus compliqué que ça.

J'ai des besoins de dialogue entre les deux fenêtres...


ce n'est pas une question de target .....

Merci
bonsoir

pour un nouvelle fenetre créée à partir la fenetre ouverte ilsuffit de
passer par la définition de ce que sont les variables globales et fonctions.

En créant une variable globale ou une fonction on définit en fait de nouvelle
propriétés de l'objet globale 'window' :


<html>
  <head>
    <title></title>
    
    
	<script type="text/javascript">
		function openWindow() {
			// creation nouvelle fenetre window2
			window2 = window.open("window2.html",   "nom_window2","width=400,height=400");
			
		}
		// creation varaible globale 
		// en créant un variable hors fonctionon on crée en fait une 
		// propriété de l'objet global window
		var globale = 100;
		
		// une simple fonction
		function addition(nbre1,nbre2) {
			var resultat = nbre1 + nbre2;
			return resultat;
		}		
	</script>
  </head>
  <body>
<input type="button" onclick="openWindow()" value="ouvrir window2" />

</body>
</html>


... merci de ne pas tenir compte de mon "onclick" pas beau !!! Smiley rolleyes

il suffit maintenant de se référer dans la 'window2' à la fenetre qui l'a créer
avec la propriété "opener" de l'objet 'window' :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<title>Untitled Document</title>
	</head>
	<body>
		<p>Je suis la Window2
		<script type="text/javascript">
			document.writeln(window.opener.name);
		</script>
		</p>
		
		<p>On veut se référer a la première fenetre. <br />
		<script type="text/javascript">
			var globale = parent.opener.globale;
			document.writeln("la valeur de la varaible globale definie fenetre 1 : " + globale + "<br />");
			
			var fenetre = parent.name;
			document.writeln("nom de cette fenetre : " + fenetre + "<br />");
			
			var fonction = parent.opener.addition;
			document.writeln("calcul d'une addition avec la fonction definie dans l'autre fenetre :<br />");
			document.writeln(fonction(5,10));
		</script>
		</p>
	</body>
</html>


j'ai fait un test mais uniquement avec FF ( je crois que cela fait partie du niveau 0)
... ben j'ai pas réussi par contre dans le sens contraire , mais je crois que l'on peut définir dans la fenetre window la valeur de la variable globale en passant par : parent.frame[0].globale = 55;

Ps: le deuxiéme paramètre de la méthode open() peut servir comme valeur de l'attribut 'target' dans les marqueurs <form> ou <a>

si je m'endors pas je vais tester le sens inverse . Smiley zzzz
++

re ps : A partir de javascript 1.1 un objet window continue d'exister meme après sa fermeture . on peut tester si cette fenetre est encore ouverte avec
la propriété 'closed' .
Cette propriété renvoie 'true' si la fenetre a été fermée.
Modifié par kzone (15 Dec 2006 - 04:52)