jacknikolson
Messages postés134Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention18 novembre 2012
-
1 janv. 2006 à 23:24
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 2011
-
3 janv. 2006 à 15:05
Salut à tous et bonne année.
J'utilise un cms (pwsphp) avec une galerie d'images. Il y a un JS pour afficher les images en popup. je voudrais que l'image ne s'ouvre pas dans le coin haut/gauche de l'écran mais au centre.
J'ai essayé de bidouiller le code du cms et même si je réussis à faire déplacer le popup sous IE en changeant certaines valeurs, cela ne fait aucun effet sous FF.
voici le code:
<script>
// Set the horizontal and vertical position for the popup
PositionX = 0;
PositionY = 0;
// Set these value approximately 20 pixels greater than the
// size of the largest image to be used (needed for Netscape)
defaultWidth = 0;
defaultHeight = 0;
// Set autoclose true to have the window close automatically
// Set autoclose false to allow multiple popup windows
var AutoClose = true;
if (parseInt(navigator.appVersion.charAt(0))>=4){
var isNN=(navigator.appName=="Netscape")?1:0;
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;
}
var optNN='scrollbars=yes,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;
var optIE='scrollbars=yes,width=150,height=100,left='+PositionX+',top='+PositionY;
function popImage(imageURL,imageTitle){
if (isNN){
imgWin=window.open('about:blank','',optNN);
}
if (isIE){
imgWin=window.open('about:blank','',optIE);
}
with (imgWin.document){
writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');
writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
writeln('isNN=(navigator.appName=="Netscape")?1:0;');
writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);');
writeln('width=100-(document.body.clientWidth-document.images[0].width);');
writeln('height=100-(document.body.clientHeight-document.images[0].height);');
writeln('window.resizeTo(width,height);}');
writeln('if (isNN){');
writeln('window.innerWidth=document.images["George"].width;');
writeln('window.innerHeight=document.images["George"].height;}}');
writeln('function doTitle(){document.title="'+imageTitle+'";}');
writeln('</sc'+'ript>');
if (!AutoClose)
writeln('</head>')
else
writeln('</head>');
writeln('</html>');
close();
}
}
</script>
Que faire pour que ce popup soit centré sous IE et sous FF?
jacknikolson
Messages postés134Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention18 novembre 2012 3 janv. 2006 à 11:44
Salu PetoleTeam et merci pour ton message.
Happy new year à toi aussi
je pense qu'avec ton aide la solution est proche, mais comme je ne maîtrise pas du tout JS je ne sais pas trop où mettre le code.
J'ai collé les déclarations de variables en haut juste après <script>
var Hauteur = screen.height;
var Largeur = screen.width;
var PosX = Largeur -(window.innerWidth/2);
var PosY = Hauteur -(window.innerHeight/2);
mais je ne sais pas où mettre window.moveTo(PosX, PosY);
J'ai essayé de le coller au pif juste apès mais ça ne donne rien. Jai regardé la syntaxe avec le writeln et j'ai essayé de coller ça là dedans avec un truc du genre
writeln('function placeToImage(){');
writeln('window.moveTo(PosX, PosY);}}');
(sois indulgent c'est du pifomètre )
mais sous ff ça me donne un fullscreen et sous IE un popup de 50x40....
Là je bloque un peu.......et en plus, comme tu dis, les bubulles aident pas....tu pourrais m'éclairer un peu?
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 3 janv. 2006 à 14:13
Tout d'abord BURPSSS! Il reste des bulles vu la con...rie écrite ci dessus à savoir pour centrer on fait...
var PosX = ( Largeur - window.innerWidth) /2 ;
var PosY = ( Hauteur - window.innerHeight) /2;
et NON
var PosX = Largeur -(window.innerWidth/2);
var PosY = Hauteur -(window.innerHeight/2);
enfin BON...
...passons aux choses sérieuses, reBURPSSSS...
ta fonction devrait ressembler à cela...
writeln('function reSizeToImage() { ');
// Déclarations des variables ATTENTION les variables du document d'origine ne sont pas visibles dans le document résultat...
writeln('var Hauteur = screen.height;');
writeln('var Largeur = screen.width;');
writeln('var PosX; var PosY;');
writeln('var Larg; var Haut;');
jacknikolson
Messages postés134Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention18 novembre 2012 3 janv. 2006 à 14:32
j'ai rien dit je crois que j'ai réussi: j'ai mis ton code à la place de l'ancienne fonction resize
function popImage(imageURL,imageTitle){
if (isNN){
imgWin=window.open('about:blank','',optNN);
}
if (isIE){
imgWin=window.open('about:blank','',optIE);
}
with (imgWin.document){
writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');
writeln('<sc'+'ript>');
writeln('var isNN,isIE;');
writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
writeln('isNN=(navigator.appName=="Netscape")?1:0;');
writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
writeln('function reSizeToImage(){');
// Déclarations des variables ATTENTION les variables du document d'origine ne sont pas visibles dans le document résultat...
writeln('var Hauteur = screen.height;');
writeln('var Largeur = screen.width;');
writeln('var PosX; var PosY;');
writeln('var Larg; var Haut;');