# Ouvrire une fenêtre _blank avec une taille prédéfinie?



## chupastar (22 Décembre 2005)

Bonjour tout le monde!

J'arrive encore avec ma question de débutant à la réponse facile:

Sur mon blog ( http://picsmaker.free.fr/blog/ ) j'ai mis pour ceux qui veulent laisser un commentaire, la possibilité d'utiliser le BBCode. Pour les novices j'ai créé un lien qui les renvois vers une fenêtre pop up avec quelques exemples d'utilisation.

Mais cette fenêtre s'ouvre en plein écran, or, j'aurais aimé qu'elle s'ouvre avec une taille plus réduite, adaptée à son faible contenue. Commet dois-je faire?

Est-ce une ligne de code dans la page html qui contient le BBCode ( http://picsmaker.free.fr/divers/bbcode.html ), est-ce une ligne de code que je dois mettre dans la page PHP qui contient le liens vers cette page?

Dans les deux cas, quelle est la ligne de code appropriée?

Merci beaucoup de votre aide!


----------



## apenspel (22 Décembre 2005)

J'ai déjà fait ça en javascript. Mais il y a fort longtemps, je ne me souviens plus. En tout cas, ce n'était pas en PHP, je n'en ai jamais fait.
Ah, mais ta page n'est pas en PHP ! Alors, c'est sûr, c'est du java, un script simple pour Dreamweaver, je pense.


----------



## chupastar (22 Décembre 2005)

La page qui contient le lien vers la page à ouvrir est en PHP, par contre la page qui s'ouvre en pop up, elle, est en html.


Merci.


----------



## .Steff (22 Décembre 2005)

voici un code qui t'aidera peut etre.C'est du javascript simple.


```
<SCRIPT LANGUAGE="JavaScript">
                <!&#8212;
                function popup(nom_de_la_page, nom_de_la_fenetre)
                {
                window.open (nom_de_la_page, nom_de_la_fenetre, config='height=100,                  width=400, toolbar=no, menubar=no, scrollbars=no, resizable=no,                  location=no, directories=no, status=no')
                }
                -->
                </SCRIPT>
```

Ca c'est ton script , a placé entre les balice head.
Et maintenant tu l'appel dans ton body:


```
<A HREF="javascript:popup('fenetre_popup.html','popup_1');">Ici ton lien</A>
```


----------



## Langellier (30 Décembre 2005)

Bonjour
voici un javscript possible, que je pratique parfois

```
dans le head : 
<script type='text/javascript'>
function CreerFen(w,h,fichier)
{
fen=window.open(fichier,"","resizable=yes,scrollbars=yes,toolbar=no,location=no,directories=no,status=no,alwaysraised=yes,width= "+w+",height="+h);
fen.moveTo(0,0);
}</script>
Dans le body :
<a href="javascript:CreerFen(650,600,'xxxx.html','titre page')">nom du lien</a>
```

Les nouvelles fenêtres réduites présentent 2 inconvénients :
1) il faut penser à les refermer
2) Eviter d'y mettre des liens, car ils s'afficheront tous dans cette taille réduite.

Un exemple ici à "glossaire botanique".


----------



## chupastar (30 Décembre 2005)

Merci à vous deux pour vos réponses.

Je n'avais pas eu le temps de m'en occuper jusqu'à maintenant à cause d'un autre problème dans mes pages qu'il fallait que je règle au plus vite.

Je suis complètement débutant, ce qui fait que je ne comprends pas trop vos solutions. Car en fait mon lien pointant vers la page à afficher dans une fenêtre à taille prédéfinie, se trouve non pas sur une page en html mais sur une page en php. Je ne trouve donc pas les balise head et body que vous m'indiquez comme sur une page html classique.

Voici le contenu de ma page en php:



> <?php
> ?>
> <form action="<?php dcPostUrl(); ?>" method="post" class="form">
> <fieldset>
> ...



Le lien concerné est celui que j'ai affiché en gras ("BBCode").

Merci beaucoup.


----------



## Langellier (30 Décembre 2005)

Bonjour
Voici une alternative :
C'est de demander le redimensionnement non pas dans la page qui contient le lien mais directement dans la page à redimensionner ; ici bbcode.html. Cette page est du html normal donc elle contient une en-tête (head).
Il faut donc mettre dans le head de la page à redimensionner :

```
<script type='text/javascript'>window.resizeTo(550,420)</script>
```
Garder le code en gras ci-dessus (avec target="_blank") de la page qui appelle, sinon toutes pages consultées ultérieurement s'afficheront avec le même redimensionnement.

Mes propositions sont à prendre avec réserve, car je ne connais pas le php (tout simplement parce que mon hébergeur ne le propose pas dans son contrat de base).


----------



## chupastar (30 Décembre 2005)

Langellier a dit:
			
		

> Bonjour
> Voici une alternative :
> C'est de demander le redimensionnement non pas dans la page qui contient le lien mais directement dans la page à redimensionner ; ici bbcode.html. Cette page est du html normal donc elle contient une en-tête (head).
> Il faut donc mettre dans le head de la page à redimensionner :
> ...




Merci beaucoup!, Cette solution, aussi simple soit elle marche très bien! 

Merci.

Edit: une autre question: est-il possible de supprimer la barre d'adresse et d'outils qui se trouve en haut de cette fenêtre qui s'ouvre?  Merci.


----------



## molgow (30 Décembre 2005)

Juste un commentaire sur la dernière solution (proposée par Langellier). J'ai tendance à penser qu'elle est plutôt mauvaise car pour les gens qui surfent avec des onglets, un lien avec target="_blank" va ouvrir un nouvel onglet et non une nouvel fenêtre, puis le redimensionnement va changer la taille de la fenêtre, et donc aussi pour les autres onglets (très énervant ensuite lorsqu'on revient à un autre onglet!)
Personnellement, j'aime pas du tout les sites qui redimensionne ma fenêtre. Sauf si c'est vraiment une nouvelle fenêtre créée via JavaScript.
En plus de ça, pour être conforme aux dernières normes, il faut ouvrir une nouvelle fenêtre avec JavaScript et non avec target="_blank" (qui a été déprécié il me semble).


----------



## Langellier (30 Décembre 2005)

Bonjour, je suis d'accord : redimensionnement et target=_blank ne sont pas recommandables. Je les utilisais jadis pour afficher des images à la volée dans une nlle fenêtre et les ai maintenant presque toutes supprimées.
Il faudrait donc trouver une solution qui ne necessite pas ces méthodes. 
Il existe encore une autre méthode qui évite tout cela :un exemple ici.
Il s'agit ici de demander à la volée l'insertion de texte et / ou image :
Dans le body, appel de la fonction :

```
<p><a href="javascript:void(0)" onclick="affichefface(1);return false">Afficher</a>
<br /><a href="javascript:void(0)" onclick="affichefface(0);return false">Supprimer</a></p>
<div id="montexte"></div>
```
Dans le head, la fonction javascript :

```
<script type='text/javascript'>un=new Image();un.src="xxx.gif";
function affichefface(n) 
{if(n==0){output=""}
if(n==1){output="<p>blabla</p><img src='xxx.gif' width='---' height='----' alt='yyyy'>"}
ajout = document.getElementById('montexte');
ajout.innerHTML = output;}</script>
```
Vous l'avez compris, la méthode innerHTML génère du html "à la volée".
Mais le php que je ne connais pas doit pouvoir faire cela plus facilement.
Y-a-t'il un phpiste dans le forum ?


----------



## Langellier (30 Décembre 2005)

chupastar a dit:
			
		

> une autre question: est-il possible de supprimer la barre d'adresse et d'outils qui se trouve en haut de cette fenêtre qui s'ouvre?  Merci.


Oui, la solution est dans un des scripts ci-dessus, le 2e je crois : toolbar=no,location=no,...
si tu optes toujours pour un nlle fenêtre !!


----------



## chupastar (30 Décembre 2005)

Oui c'est bien comme idée, si j'ai bien tout compris, avec cette méthode, la fenêtre pop up n'est plus utile, le texte s'affiche ou s'efface à la demande à un endroit dont on a précisé l'emplacement.

C'est vraiment bien! Mais il faudrait qu'un expert en php me donne la marche à suivre car je n'y arriverais jamais tout seul...


----------



## Nephou (30 Décembre 2005)

molgow a dit:
			
		

> En plus de ça, pour être conforme aux dernières normes, il faut ouvrir une nouvelle fenêtre avec JavaScript et non avec target="_blank" (qui a été déprécié il me semble).



Exact, la spécification de "target" dans les liens empêche la validation _xhtml strict _mais est permise en _transitionnal._


----------



## Captain_X (30 Décembre 2005)

pour ma part j'aurai fait : 

 <a href="#" onclick="window.open('http://picsmaker.free.fr/divers/bbcode.html','bbcode','height=xxx,width=xxx')">BBCode</a> 

c'est quand même plus claire et plus simple et c'est valide en xhtml (transitionnal en tout cas)


----------



## chupastar (30 Décembre 2005)

Captain_X a dit:
			
		

> pour ma part j'aurai fait :
> 
> <a href="#" onclick="window.open('http://picsmaker.free.fr/divers/bbcode.html','bbcode','height=xxx,width=xxx')">BBCode</a>
> 
> c'est quand même plus claire et plus simple et c'est valide en xhtml (transitionnal en tout cas)



Merci beaucoup ça marche bien!

Par contre, dans firefox, si on essaye d'ouvrir le lien dans un nouvelle onglet avec pomme+clic, ça ouvre la fenêtre en popup en plus de rouvrir un onglet avec la même page que celle où on vient de cliquer, c'est assez étrange, ça ne le fait pas sur Safari (tout comme le redimensionnement de la page d'ailleurs avec la manière précédente, le pb survient uniquement avec Firefox...).

Merci beaucoup!


----------



## gwena (4 Janvier 2006)

oui c'est normal que ça fasse ça: soit tu veux un popup dans ce cas  le code donné en dernier est ok, soit tu veux que ça s'ouvre dans un onglet et la il suffit de garder ton ancien code, mais ds tous les cas tu ne peux pas faire les 2!


----------



## chupastar (6 Janvier 2006)

Ok ça baigne, merci beaucoup!


----------

