11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

j'ai lu avec attention le topic suivant publié le 17/07/2008 :
Transfert variable $_SERVER['REQUEST_URI'] > $GET > $

Celui-ci m'a été très utile puisque je souhaitais récupérer l'url dynamique de la page courante pour un petit formulaire "recommander la page".

Or, je rencontre un problème avec la taille du pop-up (unique pop-up sur le site), il s'ouvre comme une page normale, il ne prend pas en compte les features : width et height.

Je précise que le code suivant est dans une page php :




echo '<p align="right"><a href="recommander-a-une-amie.php?pageaenvoyer='.urlencode($pageaenvoyer).'" target="_blank" onclick="MM_openBrWindow("","recommander","width=380,height=350")"><img src="img/recommand.png"></a></p>';





Quelqu'un pourrait-il me conseiller une piste pour remédier /corriger ce petit problème ?

Merci
Cordialement,
Bouzette Smiley sweatdrop
Modifié par bouzette (31 Mar 2010 - 11:18)
Bonjour,

Dans ton message il y a des infos inutiles, et d'autres infos indispensables qui sont manquantes.

Les infos inutiles: le code PHP. C'est un problème du côté du navigateur, donc du côté du code HTML et JavaScript (dans ce cas précis). Le PHP est exécuté côté serveur et n'est pas envoyé au navigateur. Donc le PHP est inutile ici, il serait préférable de donner directement le code HTML généré.

Les infos manquantes: on n'a pas la définition de la fonction JavaScript MM_openBrWindow.
Bonjour,

a écrit :
les infos inutiles : le code php ?


Il m’est nécessaire et donc pas inutile pour récupérer l’url de la page courante (dans un site dynamique développé en php), si j’écris tout simplement le lien en html, je ne récupère dynamiquement aucune url de la page recommandée.


a écrit :
Les infos manquantes: on n'a pas la définition de la fonction JavaScript MM_openBrWindow.


J’ai omis de préciser que la définition de la fonction JavaScript MM_openBrWindow
est dans un script « commun.js » dans le header du site :

<script type="text/javascript" src="script/commun.js"></script>


celui-ci contient bien la définition de la fonction :

/* ouverture des pop-up*/
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}


Malgré tout, les tailles du pop-up ne sont pas prises en compte. Est-il possible de définir ces tailles (voir toutes les features, du type toolbar, resize, ect) directement dans la fonction puisqu’ayant 1 seul pop-up dans le site ?

Merci d’avance,
Bouzette
onclick="MM_openBrWindow("","recommander","width=380,height=350")"


a remplacer en

onclick="MM_openBrWindow(\'\',\'recommander\',\'width=380,height=350\')"


et je pense que ça iras mieux

tu fermais tes " juste au debut de la fonction
Modifié par CPascal (31 Mar 2010 - 15:30)
Bonjour,
c'est mieux Smiley smile et pas encore au point..

Il ouvre bien un pop-up à la taille voulue mais "blank page", suivie de l'ouverture d'un 2eme pop-up (pas à la taille voulue) qui contient cette-fois ci le formulaire de recommandation.

Il doit avoir un souci avec : \

Bon, je teste encore

Merci.
bouzette a écrit :
Malgré tout, les tailles du pop-up ne sont pas prises en compte. Est-il possible de définir ces tailles (voir toutes les features, du type toolbar, resize, ect) directement dans la fonction puisqu&#8217;ayant 1 seul pop-up dans le site ?

Même si on le peut, il n'est pas sûr que ce soit appliqué à la lettre : à présent que tous les navigateurs récents proposent un système de navigation par onglets, on peut très bien les configurer de manière à ce que les pages s'ouvrant en pop-up s'ouvrent dans un nouvel onglet occupant la totalité de la surface disponible sur l'écran. Bref, il faut savoir lâcher prise. Smiley cligne
bouzette a écrit :
fonction JavaScript MM_openBrWindow

Ça sent la fonction JavaScript générée par Dreamweaver... Smiley confus
Il ouvre bien un pop-up à la taille voulue mais "blank page"

ben en meme temps tu mets vide dans l'adresse de la popup.

donc je suppose que tu veux :

 echo '<p align="right"><a href="#" target="_blank" onclick="MM_openBrWindow(\'recommander-a-une-amie.php?pageaenvoyer='
.urlencode($pageaenvoyer).'\',\'recommander\',\'width=380,height=350\')[#red];return false;[/#]"><img src="img/recommand.png"></a></p>';



et bizarre avant je mettais ça dans l'url href="javascript:void%200" et ça annulait toute action.

mais avec la nouvelle version de firefox ça m'ouvre un onglet vide avec aucune url associé. on arrête plus le progrès.........des bugs ou de la disparition des astuces du moins.

j'ai mis le return false a la place
Modifié par CPascal (31 Mar 2010 - 16:01)
Pascal,

Impec ! le tout fonctionne, youpi Smiley cligne

sauf l'image qui ne s'affiche plus mais je résouds ça de ce pas .

Merci beaucoup, je tenais à ce ptt' pop-up, mais si faut parfois lacher prise, faire des compromis, certes...
Néanmoins c'est bien tout de même de persévérer...
ah oui fais attention j'avais changé le chemin de l'image par une image testable chez moi.

j'ai re edité depuis avec ton image.
Modifié par CPascal (31 Mar 2010 - 16:09)
Hello,
CPascal a écrit :
onclick="MM_openBrWindow(\'\',\'recommander\',\'width=380,height=350\')"

L'échappement avec \ est ici déplacé et nuisible (le caractère ' n'a pas à être échappé dans la valeur d'un attribut HTML encadrée par ", et \ n'a aucune valeur d'échappement en HTML).
onclick="MM_openBrWindow('','recommander','width=380,height=350')"
a voir dans toute sa globalité (cf premier post) ce code n'est pas du html.

mais une portion de php dans un echo englober par des ' d'où les \ invisible en HTML .

c'était bien un pb de PHP finalement.
Modifié par CPascal (31 Mar 2010 - 16:22)
bouzette a écrit :
Il m’est nécessaire et donc pas inutile pour récupérer l’url de la page courante (dans un site dynamique développé en php), si j’écris tout simplement le lien en html, je ne récupère dynamiquement aucune url de la page recommandée.

Je ne dis pas que le PHP est inutile pour toi, sinon tu ne l'utiliserais pas. Je dis que nous, pour t'aider à résoudre un problème qui concerne uniquement HTML et JavaScript, en s'en contrefiche. Smiley cligne

Et de ton côté, quand tu cherches à résoudre un problème qui concerne uniquement HTML et JavaScript, tu ne devrais pas regarder du côté du PHP mais du côté du code HTML généré. Question de logique et de méthode.
Merci vraiment à chacun, de vos conseils et directives.

Oui, Florent , pour sûr : résoudre un pb d'affichage, c'est plutôt ds le code html que celui du php !

Moi aussi j'aimerais bien avoir le niveau de connaissance de Florent.
néanmoins je progresse depuis quelques mois et j'ose me lancer dans la réalisation d'un petit site dynamique.

Cordialement,
Bouzette Smiley cligne