11486 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Dans le cadre d'une utilisation classique de l'ouverture d'une popup onclick="window.open(...)" , il y a t'il un moyen de styler la nouvelle fenêtre au delà des options habituelles ? modifier le background, le centrage du contenu etc.
Merci.
Modifié par ghost (20 Jan 2007 - 13:18)
Administrateur
Hello,

En effet, window.open ouvre une fenêtre, c'est à dire une page HTML comme toutes les autres.
Tu peux donc lui appliquer des styles comme tes autres pages.
Re,

Je m'en doutais mais, là j'ai un petit manque ! les balises css (style="", je suppose) je les place où ? onclick="window.open(...)" style="" ?.
Ca doit être pourtant évident, mais le dimanche, je crois que j'ai le neurone au repos !

Merci
Non, quand tu appelles ta popup tu fais :
window.open('urlDeLaPageAOuvrir')

et cette page est une page XHTML normale à laquelle tu peux appliquer du style.
Modifié par CNeo (14 Jan 2007 - 11:35)
Re,

J'aurais du être plus explicite, c'est à la base une popup pour une galerie photo qui permet de voir la photo à sa taille originale selon :

onclick="window.open(this.href,'','height=550,width=750,left=150,top=50,resizable=yes,scrollbars=yes,status=yes,toolbar=yes,location=yes,directories=yes,menuBar=yes'); return false;" 

par exemple.
Je ne suis pas au top en JS, mais je crois comprendre que je récupère le lien avec this.href et la popup résultante est si l'on peut dire crée "à la volée", donc n'a pas de d'adresse fixe qui effectivement me permettrait de styler cette popup.
Je voulais juste connaitre les possibilités si elles existent dans ce cas de styler "à la volée" !

Merci
Modifié par ghost (14 Jan 2007 - 12:58)
J'aurais besoin d'un peu plus de code pour t'aider ...

Par exemple sur quoi est le onclick ...
Modifié par CNeo (14 Jan 2007 - 12:07)
@ghost : merci d'éditer ton message pour utiliser la balise [ code], ça évitera entre autres que le forum soit déformé.

Pour ce qui est de ta question, je ne comprends pas trop moi non plus ton problème. La page que tu ouvres en popup est-elle extérieure à ton site ? Sinon, tu peux par exemple ajouter un paramètre "popup" à l'url et utiliser ce paramètre pour appliquer un style différent.

A part ça, je ne vois pas d'autre solution que d'ajouter un gestionnaire d'événements "load" à la popup qui ajoutera un élément "link" ou changera directement le style du "body".
Modifié par Julien Royer (14 Jan 2007 - 12:32)
Désolé d'être si nul en JS mais tu pourrais m'expliquer le parametre popup ?

ps: j'ai édité désolé!
En fait je lui est demandé du code car il y a deux possibilités : soit le this.href se réfère à une page ( çà m'étonnerait sinon il le saurait ) soit le this.href se réfère directement à l'image et là on ne peut rien faire car il n'existe même pas de html ...
Modifié par CNeo (14 Jan 2007 - 13:03)
CNeo a écrit :
En fait je lui est demandé du code car il y a deux possibilités : soit le this.href se réfère à une page ( çà m'étonnerait sinon il le saurait ) soit le this.href se réfère directement à l'image et là on ne peut rien faire car il n'existe même pas de html ...
Oui, en effet, s'il s'agit d'une image, ce ne sera pas possible ainsi.

Dans ce cas-là, le mieux est peut-être de générer une page HTML à la volée en JavaScript. Par exemple :
[b]HTML[/b]
<a href="monimg.jpg" onclick="return imgPopup(this);">Img</a>

[b]JavaScript[/b]
function imgPopup(lien) {
  var w = window.open('_blank', '', 'height=550,width=750,left=150,top=50,resizable=yes,scrollbars=yes,status=yes,toolbar=yes,location=yes,directories=yes,menuBar=yes');
  w.document.write([b]Mettre ici le contenu de ton document dont l'image à partir de this.href[/b]);
  return false;
}
C'est très vite écrit, et il est sans doute préférable de créer une page HTML qui encapsule l'image, pour que les personnes qui n'ont pas accès à JavaScript aient le même résultat.
Modifié par Julien Royer (14 Jan 2007 - 13:32)
Re,

Effectivement le this.href se référe a une image et non à une page, pour le reste du code c'est peu parlant car issu d'un cms, en fait pour ceux qui connaissent, c'est une petite modif à faire sur la galerie LuxBum concernant le popup pour avoir la photo dans sa taille originale.
Modifié par ghost (14 Jan 2007 - 16:52)