OVH Cloud OVH Cloud

Taille d'une fenêtre et taille utile

20 réponses
Avatar
Sergio
Pour ouvrir une fenêtre très classiquement on fait :

window.open("page.html","nomfenetre","width=xxx,height=yyy")

(où xxx et yyy sont la taille de la fenêtre en pixels)

On peut mettre directement une image :
window.open("photo.jpg","nomfenetre","width=xxx,height=yyy")

Si aux valeurs xxx et yyy on met la taille de l'image, ça marche pas,
parce que la taille de la fenêtre inclus les bordures, barres d'outils
etc.

Comment calculer la taille de la fenêtre à mettre pour que l'image
tienne dans la fenêtre sans scroll ni zoom ? Sinon à la louche ?

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org

10 réponses

1 2
Avatar
B. M.
Peter Pan a écrit :

B. M. wrote:

Tant qu'a faire du javascript:
http://www.toutjavascript.com/main/gorun.php3?s=popupimg




Oui, mais le problème de window.resizeto() est qu'il ignore la
configuration du brouteur. Sous Firefox, par exemple, l'image #2 est
tronquée. Le mieux est de faire un resize total... arf ! pas taper :o)
Quant à la fonction, il y a plus simple avec PHP.



L'exemple était juste pour faire remarquer qu'on pouvait faire les
choses correctement : l'auteur du script a pris soin de faire un popup
resisable et avec les ascenseurs. Si en plus on utilise un vrai lien (et
pas href="#") je ne vois pas qui ça peut géner.
Mais je suis d'accord, on peut faire des choses plus simples avec php.

--
B. M.
Avatar
Peter Pan
Ravier Robin wrote:
Il est également possible de désactiver les window.open. Il y a un
billet à l'adresse
http://genezys.net/blog/2004/11/12/71-bloquer-le-target_blank-dans-firefox-10



Je n'ai pas trouvé où était "brosser.tabs.showSingleWindowModePrefs" (je
ne le vois pas apparaître dans about:config)

--
Pierre
http://www.1966.fr/
Avatar
Peter Pan
B. M. wrote:
Mais je suis d'accord, on peut faire des choses plus simples avec php.



Comme j'ai été un peu vague, je précise : avec une fonction js ou sans
(donc sans pop-up).

--
Pierre
http://www.1966.fr/
Avatar
Xavier Robin
Peter Pan a écrit :
Ravier Robin wrote:

Il est également possible de désactiver les window.open. Il y a un
billet à l'adresse
http://genezys.net/blog/2004/11/12/71-bloquer-le-target_blank-dans-firefox-10





Je n'ai pas trouvé où était "brosser.tabs.showSingleWindowModePrefs" (je
ne le vois pas apparaître dans about:config)




Il faut l'ajouter manuellement (dans about:config clic droit > nouvelle
..., ou passer par le user.js.
Avatar
DJiK
Xavier Robin a écrit :
Il faut l'ajouter manuellement (dans about:config clic droit > nouvelle
>..., ou passer par le user.js.




Non moi il y était. Depuis FF 1.0 je crois qu'il est aparu tout seul.

P-e parce que c'est broWser. ;-)

--
DJiK
Avatar
*MaDJiK*
B. M. a écrit :
Si en plus on utilise un vrai lien (et
pas href="#") je ne vois pas qui ça peut géner.




C'est vrai, mais ça peut géner s'il y a un lien pour refermer la popup.
Dans ce cas, m^ avec un href différent de #, le windows.close en JS referme l'onglet de FF! (sans extension pour gérer les onglets)

--
MaDJiK
Avatar
Olivier Miakinen
Le 17/12/2004 20:20, Peter Pan a écrit :

Touché ! ;-)



Je vois qu'on est entre gentlemen :-)



« Vous en êtes un autre. » (©)

C'est d'ailleurs ce qui nous a permis de discuter si longtemps sans en
venir aux noms d'oiseaux de toute sorte alors que, visiblement, nous
n'étions pas du tout d'accord...

[ page expliquant comment ouvrir soi-même une fenêtre ]



combien de "end users" vont lire des pages comme la tienne ?



D'abord deux ou trois, puis peut-être dix, peut-être davantage. Je n'en
tiens pas le compte exact, mais plusieurs personnes m'ont déjà écrit
pour me demander des précisions, et je suis bien persuadé qu'ils ne sont
qu'une petite partie des lecteurs. Ce que j'espère surtout, c'est que
viendra un jour où plus personne n'aura besoin de la lire parce que
d'autres que moi auront diffusé l'information.

En attendant, j'ai déjà converti une personne (me femme) et rien que
pour cela je suis content de l'avoir fait.

[...] le bouton "Revenir". Au passage, le bouton que tu appelles
"Back" alors que le pékin moyen possède un brouteur en français, IE pour
ne pas le nommer ;-)



Encore touché. Je n'ai même pas regardé comment ce bouton s'appelait sur
IE. Je fais l'essai... c'est fait : le bouton s'appelle « Précédente ».
Il faudra que je mette ma page à jour.

Merci pour ta remarque !
Avatar
ASM
Sergio a ecrit :

Pour ouvrir une fenêtre très classiquement on fait :

window.open("page.html","nomfenetre","width=xxx,height=yyy")

(où xxx et yyy sont la taille de la fenêtre en pixels)

On peut mettre directement une image :
window.open("photo.jpg","nomfenetre","width=xxx,height=yyy")

Si aux valeurs xxx et yyy on met la taille de l'image, ça marche pas,
parce que la taille de la fenêtre inclus les bordures, barres d'outils
etc.



Je dois avoir du pot car mes navigateurs m'ouvrent les fenêtres
en considérant la place utile :
- xxx et yyy correspondent à l'intérieur de la fenêtre
- top et left s'interressent à la bordure extérieure

Bien sûr si une image y est ouverte c'est mieux de :
- connaître d'avance sa taille
- ajouter les marges du body pour obtenir xxx et yyy
et éviter les ascenseurs

Comment calculer la taille de la fenêtre à mettre pour que l'image
tienne dans la fenêtre sans scroll ni zoom ? Sinon à la louche ?



cas 1)
===== on suppose la taille de la photo connue :

<script type="text/javascript"><!--
fen = false;
function eface(){
fen.document.getElementById('titre').style.visibility='hidden'; }
function pop(vue,larg,haut) {
txt = '<body background="'+vue+'" onload="setTimeout('opener.eface()',3000);">'+
'<h2 id="titre">Attendre le chargement de l'image<br>Merci</'+'h2>';
if(!(fen) || fen.closed)
fen= window.open('','','width='+larg+',height='+haut+',resizable=0');
with(fen.document) {open();write(txt);close();}
if(document.all) fen.resizeTo(larg,haut);
}
// --></script>
<a href="photo.jpg" target="_blank"
onclick="pop(this.href,300,210); return false;">Photo 1</a>

cas 2)
====== la taille n'est pas connue :

http://perso.wanadoo.fr/stephane.moriaux/truc/popup_image_auto_3_ie.shtml

et pour la même chose ou presque mais en popup
http://perso.wanadoo.fr/stephane.moriaux/truc/popup_image_auto_2.shtml

--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************
Avatar
Sergio
B. M. a présenté l'énoncé suivant :

On peut mettre directement une image :
window.open("photo.jpg","nomfenetre","width=xxx,height=yyy")

Si aux valeurs xxx et yyy on met la taille de l'image, ça marche pas, parce
que la taille de la fenêtre inclus les bordures, barres d'outils etc.

Comment calculer la taille de la fenêtre à mettre pour que l'image tienne
dans la fenêtre sans scroll ni zoom ? Sinon à la louche ?



Tant qu'a faire du javascript:
http://www.toutjavascript.com/main/gorun.php3?s=popupimg



Mais il fait également du "à la louche" :
window.resizeTo(document.images[0].width+12,document.images[0].height+30);

À priori cette "louche" va dépendre du navigateur et d'autres choses.
Exemple : Avec une barre d'outils dans la fenêtre (comme le plugin
"spoofstick"), ça ne marche plus.

Il y a bien une propriété intéressante : window.innerHeight (et
window.innerWidth) mais ça ne marche pas, devinez quoi, avec IE.

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Avatar
Sergio
B. M. a écrit :

L'exemple était juste pour faire remarquer qu'on pouvait faire les choses
correctement : l'auteur du script a pris soin de faire un popup resisable et
avec les ascenseurs. Si en plus on utilise un vrai lien (et pas href="#") je
ne vois pas qui ça peut géner.
Mais je suis d'accord, on peut faire des choses plus simples avec php.



'Tain ! Tu sais ouvrir une fenêtre en PHP toi ?

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
1 2