probleme parametre window.open

Eléphant du PHP | 223 Messages

03 avr. 2007, 12:12

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>";

Eléphant du PHP | 223 Messages

03 avr. 2007, 12:14

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>";

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

03 avr. 2007, 12:30

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>"; 
*

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 223 Messages

04 avr. 2007, 10:59

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

Eléphant du PHP | 223 Messages

04 avr. 2007, 11:26

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

Eléphant du PHP | 170 Messages

04 avr. 2007, 11:49

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>'; 
Benjamin Franklin a dit :
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

04 avr. 2007, 16:04

@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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 223 Messages

05 avr. 2007, 14:03

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>

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

05 avr. 2007, 14:10

Peux tu nous mettre le code HTML généré (aller sur le navigateur, afficher la source et la copier-coller ici).
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 223 Messages

05 avr. 2007, 14:20

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

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

05 avr. 2007, 14:23

<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 '.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 223 Messages

05 avr. 2007, 14:31

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.

Mammouth du PHP | 1353 Messages

05 avr. 2007, 14:46

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...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

05 avr. 2007, 14:54

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...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 223 Messages

05 avr. 2007, 15:03

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 !!!