![]() |
Forum SELFHTML: Archives: |
|
|
Le message suivant est de: Michel,
michel.affre@wanadoo.fr, 03. 05. 2005, 17:29
Pour un intranet je voudrais, sur un clic d'image, pouvoir redimensionner la fenêtre (qui comporte des cadres) à la taille maximale de l'écran (sans menu, sans barre d'outils, sans la barre de titre, sans le statut en bas, sans bordure... bref sans rien : que la page elle même).
Et bien sûr je voudrais que ce soit la page sur laquelle on clique qui s'agrandisse et non pas que ça ouvre une nouvelle fenêtre...
auriez vous une idée du code à exécuter ( et éventuellement de sa compatibilité avec netscape) ...
Et si ce code existe où doit il être placé : dans la page de frames ou dans l'une des frames de cette page, sachant que l'image sur laquelle on devra cliquer sea, elle, bien entendu sur l'une des pages incluse dans la page de cadre affichée ?
Merci d'avance
Michel
Le message suivant est de: Patrick Andrieu, 04. 05. 2005, 09:33
http://actuel.fr.selfhtml.org/equipe/patrick.htm
Bonjour Michel!
»» Pour un intranet je voudrais, sur un clic d'image, pouvoir redimensionner la fenêtre (qui comporte des cadres) à la taille maximale de l'écran (sans menu, sans barre d'outils, sans la barre de titre, sans le statut en bas, sans bordure... bref sans rien : que la page elle même).
»»
»» Et bien sûr je voudrais que ce soit la page sur laquelle on clique qui s'agrandisse et non pas que ça ouvre une nouvelle fenêtre...
Tous ces voeux ne sont malheureusement pas réalisables! En effet, s'il est possible avec les fonctions resize de redimensioner une fenêtre, il ne sera pas possible d'en changer l'aspect. Tu pourras donc agrandir ou rapetisser une fenêtre existante, mais tu ne pourras pas en supprimer les barres.
Une possibilité sera de faire une fonction qui:
- ouvre un popup en fullscreen (plein écran)
- avec un retard de quelques millisecondes (quasi impercevable) ferme la fenêtre ouvrante
»» auriez vous une idée du code à exécuter ( et éventuellement de sa compatibilité avec netscape) ...
Avec Netscape, la barre de titre ne se laissera pas supprimer.
Pour ce qui est du code, sache que nous nous nommons SELFHTML pour une raison: SELF signifie "faire soi-même". Nous ne présentons donc pas du "prêt-à-copier", préférant donner des coups de pouce où aider les lecteurs à trouver dans la documentation SELFHTML les chapitres ou pages contenant les passages qui les avanceront dans leurs travaux. Ce n'est pas à interpréter comme cela nous est des fois reproché comme "arrogance de ceux qui savent". Le but recherché est de porter les lecteurs à travailler par eux-mêmes. Si bien sûr en élaborant son code, le visiteur tombe sur des problèmes dont il ne voit pas la solution, nous essyons d'y remédier - chaque répondeur à la mesure de ses connaissances, naturellement.
»» Et si ce code existe où doit il être placé : dans la page de frames ou dans l'une des frames de cette page, sachant que l'image sur laquelle on devra cliquer sea, elle, bien entendu sur l'une des pages incluse dans la page de cadre affichée ?
Les cadres (frames) sont des "objets window" à part entière (presque). Le code devra donc se trouver dans le cadre qui appelle la/les fonction(s) - ou appelé depuis ce cadre si tu place ton code dans un script externe.
Et maintenant, voici les coups de pouce!
Tout d'abord, voir les propriétés et méthodes de l'objet window http://fr.selfhtml.org/javascript/objets/window.htm - en particulier, resizeBy() et resizeTo()* - et de son sous-objet document http://fr.selfhtml.org/javascript/objets/document.htm.
* à titre indicatif, puisque "retailler" (resize) une fenêtre n'en supprime pas les barres.
Voir aussi close(), open() qui seront les méthodes auxquelles tu devras faire appel. Voir aussi les gestionnaires d'événements (en particuler onClick()): http://fr.selfhtml.org/html/attributs/gestevenements.htm, pour l'appel de la fonction par l'image.
close(): http://fr.selfhtml.org/javascript/objets/window.htm#close
Rajoutons aux explications données dans la documentation que pour fermer une fenêtre, on utilise généralement:
self.close(). Si cependant, on met self.close() dans le cadre d'un jeu de cadre, il ne se passe pas grand chose, vu que le cadre (une objet window à part entière) est la fenêtre à qui "self" se réfère, donc c'est comme si on essayait de fermer uniquement le cadre... Pour fermer le jeu de cadres complet, c'est à dire la fenêtre parente, utiliser: top.close().
open():
http://fr.selfhtml.org/javascript/objets/window.htm#open
Portons notre attention ici au troisième paramètre, la chaine de caractères contenant les mentions (***à noter séparés par des virgules mais sans espace blanc***) pour définir l'aspect de la fenêtre. Une mention qui n'est pas indiquée est la mention fullscreen. Avec fullscreen=yes, tu ouvres une nouvelle fenêtre en plein écran. Pour un intranet (c'est ce que tu veux) c'est à la rigueur utilisable, pour le Web, c'est une mention à abandonner, car cela irrite les visiteurs, qui d'un coup se voient tout leur bureau caché par cette fenêtre et ne savent souvent plus comment la fermer (tout le monde ne connait pas [alt] et F4).
Tu peux donc définir dans ton fichier un passage JavaScript avec une fonction de ce style:
fonction plein_ecran () {
open('url_de_la_page_en_plein_ecran','nom_a_choisir','fullscreen=yes,et_autres_mentions_au_choix_a_essayer_');
setTimeout("top.close()", 50);
}
Pour le code HTML de l'image:
<a href="#" onClick="plein_ecran();return false"><img ...></a>
Dans un intranet, où tous ont les mêmes configurations, tu peux mettre aussi <a href="javascript:plein_ecran();"><img ...></a>. L'autre solution est à conseiller vivement pour le Web, le return false empêchant que le lien ne soit suivi par le navigateur - même si c'est un lien sur #, c'est à dire sur rien - en principe, un lien sur # fait remonter l'affichage au début du document.
Voilà!
Meilleures salutations de Francfort sur le Main,
Patrick
--
_ au delà du délire _

Le message suivant est de: David, 04. 05. 2005, 09:48
http://www.site-en-stock.net/
Nos réponses se sont croisés, j'avais pas pensé au fullscreen=yes ça marche avec tous les navigateurs?
--
Get Firefox!
http://www.mozilla-europe.org/fr/products/firefox/
Avec ça vous allez voir ce qu'est un vrai navigateur web...

Le message suivant est de: Patrick Andrieu, 04. 05. 2005, 11:20
http://actuel.fr.selfhtml.org/equipe/patrick.htm
Bonjour toi!
»» Nos réponses se sont croisés, j'avais pas pensé au fullscreen=yes ça marche avec tous les navigateurs?
On se croise on se toise
et vite nos regards s'évitent
hmm, de qui c'est déjà???
Bon, alors je viens de tester un exemple que j'avais fait dans le passé sur mon site (dans mon "Hall des méchancetés", j'avais fait plein de trucs JavaScript plus ou moins méchants):
http://www.atomic-eggs.com/halle/aus1.html
Cette page appelle une autre (une à deux secondes) qui est sortie en fullscreen. Avec IE, no probs, avec Mozilla, Firefox et Opera: no fullscreen... Je me souviens que Netscape (le vieux 4.x) sortait un plein écran mais en gardant la barre du titre.
Si cependant sur un intranet les utilisateurs disposent de IE, Michel pourra utiliser l'exemple. Je pense que fullscreen est une mention propriétaire à IE et ce pour des raisons suivantes: certains utilisateurs de produits Microsoft peuvent réaliser des présentations basées sur l'Explorer Internet. C'est pour cette raison aussi qu'existent les divers filtres Microsoft (voir SELFHTML) qui ne feront jamais partie des standards, mais qui peuvent être intéressant pour utiliser dans un intranet ou présentations sur CD ROM, le tout combiné avec des applications HTA par exemple.
Je viens de voir que j'avais une explication en ligne (et en Français) concernant return false dans onClick(). Ce sera peut-être interessant pour Michel: http://www.atomic-eggs.com/halle/wargoat.html.
J'avais fait ça pour les lecteurs de AllHTML, où je m'étais inscrit au début pour faire un peu de pub pour SELFHTML (et oui...).
Et enfin, pour ceux que cela intéressent, bienvenu dans le hall des méchancetés (Halle der Gemeinheiten, malheureusement dépassé depuis les popup-blocker et tout et tout...): http://www.atomic-eggs.com/news/halofbad.html (cliquer sur ENTER en bas).
Meilleures salutations de Francfort sur le Main,
Patrick
--
_ au delà du délire _

Le message suivant est de: David, 04. 05. 2005, 11:49
http://www.site-en-stock.net/
Saluit Patrick!
»» On se croise on se toise
»» et vite nos regards s'évitent
»»
»» hmm, de qui c'est déjà???
alors google me donne deux propositions: http://www.paroles-musique.com/Variete/Priscilla/Banquise.php et http://lartscene.com/artistes_disco_txt.php?id_artiste=22&id_disco=45 chanson N7. Franchement j'espère que ta référence c'était pas le premier lien :-))
»» Cette page appelle une autre (une à deux secondes) qui est sortie en fullscreen. Avec IE, no probs, avec Mozilla, Firefox et Opera: no fullscreen... Je me souviens que Netscape (le vieux 4.x) sortait un plein écran mais en gardant la barre du titre.
Je m'attendais à ça. Moi j'avais proposer d'ouvrir avec open() une fenêtre au dimension screen.availWidth et screen.availHeight, si on enleve menubar et statusbar (grâce aux options de open()) on en revient au même, je pense, ou au moins on doit bien s'en rapprocher. Il reste la barre de titre, mais c'est pratique pour fermer la fenêtre.
»» J'avais fait ça pour les lecteurs de AllHTML, où je m'étais inscrit au début pour faire un peu de pub pour SELFHTML (et oui...).
»»
Il faut bien au début!
David
--
Get Firefox!
http://www.mozilla-europe.org/fr/products/firefox/
Avec ça vous allez voir ce qu'est un vrai navigateur web...

Le message suivant est de: Michel,
michel.affre@wanadoo.fr, 04. 05. 2005, 14:32
Merci de vos réponses ...
Ceci parait fonctionner :
<script language="javascript">
<!--
function PleinEcran()
{
open('../indexGrand.htm','Test','fullscreen=yes,scrollbar=no');
setTimeout("top.close()", 50);
}
//-->
</script>
MAIS : le close m'affiche une boite de dialogue de confirmation ... est-il possible de l'éviter ?
Par ailleurs à titre de "formation", pourquoi laisser un délai de 50 ms ? est-ce que les opérations ne sont pas séquentielles en Javascript ?
Merci encore c'est déjà un embryon de solution gace aux liens que vous m'avez tous deux fournis
(je reposte cette réponse car je ne vois pas celle que je vous avais faite apparaître dans le Forum) ... suis pas très dégourdi !
Le message suivant est de: Patrick Andrieu, 06. 05. 2005, 10:44
http://actuel.fr.selfhtml.org/equipe/patrick.htm
Bonjour Michel!
»» function PleinEcran()
»» {
»» open('../indexGrand.htm','Test','fullscreen=yes,scrollbar=no');
»» setTimeout("top.close()", 50);
»» }
»» //-->
»» </script>
»»
»» MAIS : le close m'affiche une boite de dialogue de confirmation ... est-il possible de l'éviter ?
Non, malheureusement. C'est bien pour cela que j'avais mis un délai, pensant que cela pourrait remédier au problème de la boite de dialogue. Mais même avec un délai plus grand, la boite apparait.
»» Par ailleurs à titre de "formation", pourquoi laisser un délai de 50 ms ? est-ce que les opérations ne sont pas séquentielles en Javascript ?
Je ne suis pas trop le spécialiste non plus, mais disons qu'il existe suffisamment de cas où un délai est la solution à des problèmes. Certaines fonctions étant effectuées plus rapidement, il est important des fois cependant que le résultat de l'opération d'une fonction soit disponible avant qu'une autre ne soit "lancée" - d'où la possibilité de retarder.
»» (je reposte cette réponse car je ne vois pas celle que je vous avais faite apparaître dans le Forum) ... suis pas très dégourdi !
Tu avais dû laisser la case "Aperçu du message avant l'envoi" active. Dans ce cas, tu n'as vu que l'aperçu de ton message et en quittant, ton message n'a pas été sauvegardé. Il aurait fallu alors recliquer sur "Envoyer le message"...
L'apercu offre la possibilité de relire son message pour en corriger d'éventuelles fautes de présentation ou de style ou d'orthographe.
Meilleures salutations de Francfort sur le Main,
Patrick
--
_ au delà du délire _

Le message suivant est de: David, 04. 05. 2005, 09:43
http://www.site-en-stock.net/
Bonjour déjà,
Pour ouvrir une fenêtre sans statusbar, ni menubar je ne vois que l'objet open() (voir http://fr.selfhtml.org/javascript/objets/window.htm#open). comme URL tu preciseras l'URL de ton jeu de cadres.
Pour recuperer les dimensions de l'ecran, sert toi de screen.availHeight et screen.availWidth (voir http://fr.selfhtml.org/javascript/objets/screen.htm#avail_width).
Tout ça ouvre une nouvelle fenêtre, mais tu peux fermer la fenêtre appelante grâce à window.close()
À tester.
David
--
Get Firefox!
http://www.mozilla-europe.org/fr/products/firefox/
Avec ça vous allez voir ce qu'est un vrai navigateur web...

© 1998-2004
selfhtml@fr.selfhtml.org