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

chupastar

Membre expert
Club iGen
10 Décembre 2003
2 268
231
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!
 
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.
 
voici un code qui t'aidera peut etre.C'est du javascript simple.

Bloc de code:
                <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:

Bloc de code:
                <A HREF="javascript:popup('fenetre_popup.html','popup_1');">Ici ton lien</A>
 
Bonjour
voici un javscript possible, que je pratique parfois
Bloc de code:
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".
 
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>
<?php dcCommentFormError('<div class="erreur"><strong>Erreurs :</strong><br /> %s</div>'); ?>
<p class="field">
<label for="c_nom"></label>
<input name="c_nom" id="c_nom" type="text" size="30" maxlength="255"
value="<?php dcCommentFormValue('c_nom'); ?>" />
<font color="#666666">Nom ou pseudo</font> </p>


<p class="field">
<label for="c_mail"></label>
<input name="c_mail" id="c_mail" type="text" size="30" maxlength="255"
value="<?php dcCommentFormValue('c_mail'); ?>" />
<font color="#666666">Email (facultatif )</font></p>


<p class="field">
<label for="c_site"></label>
<input name="c_site" id="c_site" type="text" size="30" maxlength="255"
value="<?php dcCommentFormValue('c_site'); ?>" />
<font color="#666666">Site Web (facultatif)</font> </p>


<p class="field">
<label for="c_content"></label>
<textarea name="c_content" id="c_content" cols="35" rows="7"><?php
dcCommentFormValue('c_content');
?></textarea>
<font color="#666666">Votre texte</font> </p>
</fieldset>

<p><font color="#000000">Vous pouvez utiliser le <a href="http://picsmaker.free.fr/divers/bbcode.html" target="_blank">BBCode</a>
pour illustrer vos commentaires.</font></p>


<fieldset>

<p>
<input type="submit" name="preview" value="pr&eacute;visualiser" />
<input type="submit" class="strong" value="envoyer" />
<input type="checkbox" id="c_remember" name="c_remember" />
<label for="c_remember" class="inline">Se souvenir de mes informations</label>
<input type="hidden" name="redir" value="<?php dcCommentFormRedir(); ?>" />
</p>
<p>&nbsp;</p>
</fieldset>

</form>

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

Merci beaucoup.
 
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 :
Bloc de code:
<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).
 
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 :
Bloc de code:
<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).


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

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.
 
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).
 
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 :
Bloc de code:
<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 :
Bloc de code:
<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 ?
 
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 !!
 
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...
 
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 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!