Page 1 sur 2

probleme parametre window.open

Posté : 03 avr. 2007, 12:12
par pierrot
Bonjour,
je ne comprend pas pourquoi les paramètres mis dans mon window.open ne sont pas pris en compte, pouvez vous m'aider? Merci
echo "<a href='./img/grandes/".$lettre."/".$nom."' onclick='window.open(this.href,'photo', 'height=100, width=200, top=100, left=100, toolbar=no, menubar=yes, location=no, resizable=yes, scrollbars=no, status=no'); return false;'>pouet pouet</a>";

Posté : 03 avr. 2007, 12:14
par pierrot
apparement, ya un ptit probleme d'affichage du code, je mets ma sans balise du coup, désolé

echo "<a href='./img/grandes/".$lettre."/".$nom."' onclick='window.open(this.href,'photo', 'height=100, width=200, top=100, left=100, toolbar=no, menubar=yes, location=no, resizable=yes, scrollbars=no, status=no'); return false;'>pouet pouet</a>";

Posté : 03 avr. 2007, 12:30
par Truc
Salut,

Le souci se trouve au niveau des apostrophes pour l'attribut onclick qui se retrouvent également pour les attribut de open()
Change de méthode \" :
echo "<a href='./img/grandes/".$lettre."/".$nom."' onclick=\"window.open(this.href,'photo', 'height=100, width=200, top=100, left=100, toolbar=no, menubar=yes, location=no, resizable=yes, scrollbars=no, status=no'); return false;\">pouet pouet</a>"; 
*

Posté : 04 avr. 2007, 10:59
par pierrot
merci bien pour les quotes, peut-être qu'un jour j'arriverai à les placer sans me prendre la tête!!! :wink:
Autre petite question sur le meme code, j'ai recuperer juste avant l'ouverture de cette fenetre la resolution de l'ecran grace à du javascript, et je voudrais ouvrir cette fenetre avec les dimensions obtenues.
voici mon code:
echo "largeur :".$largeur."<br/>";
echo "hauteur :".$hauteur."<br/>";
echo "<a href='./img/grandes/".$lettre."/".$nom."' onclick=\"window.open(this.href,'photo', 'height=".$hauteur.", width=".$largeur.", top=0, left=0, toolbar=no, menubar=no, location=no, resizable=yes, scrollbars=no, status=no'); return false;\">plante plein écran</a>";
Les 2 premiers echo sont juste là pour verifier que je recupere bien les valeurs.
Donc là, il m'affiche bien largeur et hauteur (ici 1024 et 768) mais la fenetre ne s'ouvre pas avec cette taille là et je ne comprends pas pourquoi...

Si il faut que je recrée un post pour ca, merci de me l'indiquer. Comme c'etait sur la meme ligne de code, j'ai pensé bon poser ma question à la suite.
Merci pour vos conseils, bonne journée

Posté : 04 avr. 2007, 11:26
par pierrot
Je viens de me rendre compte que ca ne marchait pas uniquement sous IE, sous Firefox, la fenetre s'ouvre bien avec les parametres recupérés au préalable. Y a t'il une solution pour IE? merci

Posté : 04 avr. 2007, 11:49
par Expreg
Change de méthode " :
Je l'aurais fait comme ça :
echo '<a href="./img/grandes/'.$lettre.$nom.'" onclick="window.open(this.href,\'photo\', \'height=100, width=200, top=100,
 left=100, toolbar=no, menubar=yes, location=no, resizable=yes, scrollbars=no, status=no\'); return false;">pouet pouet</a>'; 

Posté : 04 avr. 2007, 16:04
par Truc
@Expreg : certes :)

@pierrot
regarde si tu n'as pas une fonction JS qui n'est pas correcte et qui donc fait planter la suite.
Fait un test sur un page où il y a que cette ligne pour vérifier.

Avec toutes les mesures de sécurité d' IE7 ( #-o ) on ne pourra bientôt plus afficher de pages HTML sans 15 validations :x

Posté : 05 avr. 2007, 14:03
par pierrot
j'ai fait un test en mettant que cette ligne, mais la fenetre ne s'ouvre toujours pas avec les parametres recupérés. De plus, ca ne marche ni sous FF, ni sous IE.
Cela vient peut etre de ma facon de recuperer mes valeurs de resolution
Voici le code, si vous voyez une erreur, n'hésitez pas à me le signaler.
Merci à tous
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>resolution</title>
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">

<script type="text/javascript">
var w = screen.width; 
var h = screen.height;
</script>

<?php
$largeur="<script>document.write(w);</script>";
$hauteur="<script>document.write(h);</script>";
echo $largeur."<br/>";
echo $hauteur."<br/>";
$nomgrandeplante="plante.jpg";

echo "<a href='./photosplantes/".$nomgrandeplante."' onclick=\"window.open(this.href,'photo', 'height=".$hauteur.", width=".$largeur.", top=0, left=0, toolbar=no, menubar=no, location=no, resizable=no, scrollbars=no, status=no'); return false;\">plante plein écran</a>";

?>
</body>
</html>

Posté : 05 avr. 2007, 14:10
par mere-teresa
Peux tu nous mettre le code HTML généré (aller sur le navigateur, afficher la source et la copier-coller ici).

Posté : 05 avr. 2007, 14:20
par pierrot
alors, le code généré de la page où figure le lien :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> 
<head> 
<title>resolution</title> 
</head> 
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%"> 

<script type="text/javascript"> 
var w = screen.width;  
var h = screen.height; 
</script> 

<script>document.write(w);</script><br/><script>document.write(h);</script><br/><a href='./photosplantes/plante.jpg' onclick="window.open(this.href,'photo', 'height=<script>document.write(h);</script>, width=<script>document.write(w);</script>, top=0, left=0, toolbar=no, menubar=no, location=no, resizable=no, scrollbars=no, status=no'); return false;">plante plein écran</a> 
</body> 
</html>
et le code source de la fenêtre qui s'ouvre, c'est une série de caractères bizarres du style :
GIF87a€àw!þSoftware: Microsoft Office,€à‡ÿÿÿ1Î1
je suppose que ca doit être la transcription de l'image affichée

Posté : 05 avr. 2007, 14:23
par mere-teresa
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>resolution</title>
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">

<script type="text/javascript">
var w = screen.width;
var h = screen.height;
</script>

<script>document.write(w);</script><br/><script>document.write(h);</script><br/><a href='./photosplantes/plante.jpg' onclick="window.open(this.href,'photo', 'height=<script>document.write(h);</script>, width=<script>document.write(w);</script>, top=0, left=0, toolbar=no, menubar=no, location=no, resizable=no, scrollbars=no, status=no'); return false;">plante plein écran</a>
</body>
</html>
Avec ce code HTML la fenêtre s'ouvre. Cependant, je te signale que les attributs en HTML prennent des doubles quotes " et pas de simples apostrophes '.

Posté : 05 avr. 2007, 14:31
par pierrot
la fenetre s'ouvre, mais pas avec la bonne resolution. Normalement, je recupere la resolution de l'ecran de l'utilisateur avec le script javascript pour pouvoir ouvrir la fenetre avec les bonnes valeurs. Ici, la fenetre ne prend pas tout l'ecran, alors que si je mets directement les valeurs numériques (pour moi 1024 et 768), là la fenetre s'ouvre bien en plein ecran chez moi.

Posté : 05 avr. 2007, 14:46
par guilt92
Bonjour,

ta syntaxe est mauvaise : dans le onclick = tu es déjà en javascript (je pense) donc tu n'as pas besoin des balises <script> et du document.write.

je conseillerai plutot une syntaxe du type
onclick="window.open(this.href,'photo', 'height= '+h+', width= '+w+', top=0, left=0, toolbar=no, menubar=no, location=no, resizable=no, scrollbars=no, status=no'); return false;"
qui semble fonctionner mieux...

Posté : 05 avr. 2007, 14:54
par Ryle
Je plussois la remarque de guilt92 !

C'est un miracle (ou plutot un bug) que cette syntaxe ait pu fonctionner sous firefox.. un attribut html ne peut pas contenir de balises html, et je ne comprend pas comment firefox a bien pu interpréter ces balises alors qu'il ne s'agit que d'une chaine de caractère qu'il n'a aucune raison d'évaluer...

Posté : 05 avr. 2007, 15:03
par pierrot
merci à vous 2, ca semble marcher, c'est-a-dire le lien marche, ca ouvre bien en plein ecran. Mais il reste un ptit probleme de quote (j'ai jamais réussi à comprendre vraiment comment ca marche ces trucs là !!!)
du coup, sur la 1ere page, ca m'affiche:
plante plein écran onclick="window.open(this.href,'photo', 'height= '+h+', width= '+w+', top=0, left=0, toolbar=no, menubar=no, location=no, resizable=no, scrollbars=no, status=no'); return false;"
voilà le code comme je l'ai modifié:
echo "<a href='./photosplantes/".$nomgrandeplante."' onclick=\"window.open(this.href,'photo', 'height='+h+', width='+w+', top=0, left=0, toolbar=no, menubar=no, location=no, resizable=no, scrollbars=no, status=no'); return false;\">plante plein écran</a>"; 
Voilà, je pense qu'il doit juste rester ce probleme de quote et ca devrait fonctionner comme dans mes plus beaux reves !!!