Rechercher : dans
Par :

Window.open et ouverture de fenêtre

Dernière réponse le 21 mar 2007 à 17:53:19 mijad, le 12 mar 2007 à 13:59:27 
 Signaler ce message aux modérateurs

Bonjour.

Pour la gestion de mon intranet, j'aimerais souhaiter leur anniversaire à mes collaborateurs autrement.
Actuellement, je le fais sur une page de l'intranet de cette manière :

avec un fichier "anniv.js"
----------------------------

function TodayDate() {
var m = new Array( "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
var today = new Date();
var day = today.getDate();
return (day + " " + m[today.getMonth()]);
}
var date = TodayDate();

if (date == "12 mars") { document.write("Bon anniversaire Michel"); }
if (date == "27 avril") { document.write("Bon anniversaire Jean"); }
if (date == "7 mai") { document.write("Bon anniversaire Laurent"); }

--------------------------------------------------------------------

et le code que j'écris sur la page où je veux voir apparaître le message :

<script language="JavaScript" src="anniv.js" type="text/JavaScript"></script>

--------------------------------------------------------------------

En fait, sur base de cela, je voudrais ouvrir une fenêtre à partir de ma page d'accueil, ce serait plus convivial qu'une petite phrase perdue au bas d'une page.
Si quelqu'un pouvait éclairer ma lanterne, je l'en remercie d'avance.
Merci et @+
Michel.

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « window.open et ouverture de fenêtre » dans :
Problème pour ouvrir les liens dans Outlook VoirSi Outlook est dans l'impossibilité d'ouvrir un lien hypertexte, ou si les liens dans les messages ouvrent l'explorateur sans charger la page Web, il suffit de suivre l'une des procédures suivantes : Méthode 1 Méthode 2 Méthode 3 Pour...
Javascript - L'objet window VoirLes particularités de l'objet window L'objet window est l'objet par excellence dans Javascript, car il est le parent de chaque objet qui compose la page web, il contient donc : l'objet document: la page en elle-même l'objet location: le lieu de...

1

Aquel, le 12 mar 2007 à 19:01:04

Bonjour,

voici un truc qui pourrait te mettre sur la voie:

à la place de document.write, mets:

if (date == "12 mars") 
{ window.open('ta_page_html.html','identifiant_de_ta_page',
toolbar=0,menubar=0,location=0,scrollbars=1,
width=720,height=720'); }


Les deux dernière valeures sont la taille de ta fenêtre en Px. L'identifiant de la page à ouvrir est optionnelle mais ça pourra te servir. Dans ta nouvelle page html, ilsuffit de mettre "Bon anni Machin" et le tour est joué.

A+

Répondre à Aquel

2

mijad, le 13 mar 2007 à 11:47:03

Bonjour et merci pour ta réponse.

Si je te comprends bien, je devrais construire autant de pages que j'ai de collaborateurs. Huummm, çà va m'en faire beaucoup.

Partant de ce principe, ne serait'il pas possible de construire une seule page qui sera appelée comme dans ton code et qu'une fois ouverte, cette page reçoive le texte à afficher (comme dans mon code) ?

En quelque sorte, se serait de pouvoir combiner ton code et celui que j'utilise actuellement.
Est-ce possible dans un seul fichier "JS" ?
Si oui, comment ?
Et si non, comment contourner çà ?

A bientôt... Merci et @+
Michel.

Répondre à mijad

3

Reivax962, le 13 mar 2007 à 11:56:23

Bonjour,

Peut-être pourrais-tu utiliser alert() au lieu de document.write ?
Ce n'est pas le même genre de chose, mais l'effet est à peu près le même :)
Par contre, petit conseil, placer un cookie pour dire que le message a déjà été envoyé à cet utilisateur, sinon ça risque dêtre lourd :p

Répondre à Reivax962

4

mijad, le 13 mar 2007 à 12:00:09

Bonjour Reivax.

J'ai testé la méthode alert(), mais je n'aime pas du tout cette boite de type message d'erreur.
J'ai créé une page HTML, style carte de voeux et l'avantage est que je pourrais la modifier à tout moment. Par contre, si j'ai une page par personne, çà me prendra un certain temps pour adapter toutes les cartes.
Merci et @+
Michel.

Répondre à mijad

5

Aquel, le 13 mar 2007 à 23:26:47

Salut,

Pour ne faire qu'une seule popup, récupère la variable à afficher dans celle-ci:

if (date == "12 mars") 
{ window.open('ta_page_dynamique.asp?anniversaire=Albert','identifiant_de_ta_page',
toolbar=0,menubar=0,location=0,scrollbars=1,
width=720,height=720'); }


Ici, la variable est le nom de clui qui fête son anniversaire.

A+

Répondre à Aquel

6

mijad, le 15 mar 2007 à 13:47:34

Bonjour Aquel.

Je vois que dans ton code, tu modifies 'ta_page_html.html' en 'ta_page_dynamique.asp?anniversaire=Albert'.

Puis-je simplement modifier l'extension de ma page ?
Je ne connais pas ASP, peux-tu me donner plus d'info ? Merci et @+
Michel.

Répondre à mijad

7

Reivax962, le 15 mar 2007 à 14:42:06

La solution d'Aquel nécessite d'avoir un serveur ASP (qui est le même genre de chose qu'un serveur php, dans une autre technologie).
C'est assez lourd à mettre en place.

Ceci dit, il donne une bonne piste.
Crées une page de voeux générique, que tu appelles par exemple anniv.html

Dedans, rajoute ce code :

<script language="javascript">
function setNom()
{
	var url = window.location.href;
	var pos = url.indexOf("?nom=") + 5;
	var nom = "";
	var resultat = "";
	if (pos != -1+5)
		nom = url.substring(pos);
	document.getElementById("span_nom").innerHTML = nom;
}</script>
A la place où tu veux voir le nom apparaître, mets ceci :
<span id="span_nom"> </span>
Et enfin, dans la balise <body>, rajoute ceci :
<body onload="setNom();">


Pour appeler ta page, il te suffit alors d'appeler, comme tu le faisais, la page "anniv.html?nom=John" (John n'étant qu'un exemple).

Qu'en penses-tu ?

Xavier

Répondre à Reivax962

8

mijad, le 16 mar 2007 à 13:49:06

Bonjour Reivax.

Il me semble suivre correctement les instructions, mais rien ne se passe.
Je te passe le code de la page "anniv.htm", si tu pouvais me dire ce qui coince, ce serait sympa.

***************
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Happy Birthday</title>
<style>
<!--
p.MsoNormal
{mso-style-parent:"";
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";
margin-left:0cm; margin-right:0cm; margin-top:0cm}
div.Section1
{page:Section1;}
-->
</style>
</head>

<body background="../images/card.gif" bgproperties="fixed" onload="setNom();">

<script language="javascript">
function setNom()
{
var url = window.location.href;
var pos = url.indexOf("?nom=") + 5;
var nom = "";
var resultat = "";
if (pos != -1+5)
nom = url.substring(pos);
document.getElementById("span_nom").innerHTML = nom;
}</script>

<br><br><br><br><br><br><br><br><br><br><br><br>

<p align="center"><font face="Harlow Solid Italic" color="#0000ff" size="5">
<span id="span_nom"> </span>
</font></p>

</body>
</html>
***************

Merci et @+
Michel.

Répondre à mijad

9

Reivax962, le 16 mar 2007 à 14:06:57

Bonjour,

1 - Quel navigateur utilises-tu ? J'ai testé sous Firefox, et cela fonctionne...

2 - Comment ouvres-tu la page en question ?

3 - Dans le doute, place le bloc "<script language=...>...</script>" entre les balises <head> et </head>, c'est toujours mieux.

Xavier

Répondre à Reivax962

10

mijad, le 16 mar 2007 à 20:42:07

Je vérifierai çà lundi et je te tiens au courant.

Merci et @+
Michel.

Répondre à mijad

11

mijad, le 19 mar 2007 à 11:50:03

Bonjour Reivax.

1) Mon navigateur est I.E. 6.0
2) La page est ouverte par un clic sur une autre page (a href=)
3) C'est fait.

La "pop-up" s'appelle anniv.htm et devrait apparaître à l'arrivée sur la page "menu.htm". C'est sur cette dernière que ce trouve le code :

<p align="center" class="titre">
<script language="JavaScript" src="anniv.js" type="text/JavaScript"></script>
</p>

Ceci peut'il t'aider à mieux comprendre ? Perso, je me pose la question sur le "type" du script. Il attend du texte, non ? Pas une page...
Merci et @+
Michel.

Répondre à mijad

12

Reivax962, le 19 mar 2007 à 11:53:51

Quel est le contenu de ce anniv.js, exactement ?
Sinon, pas de soucis pour le "type", c'est bien du texte (même si c'est dans un fichier annexe, c'est du texte)

Répondre à Reivax962

13

mijad, le 19 mar 2007 à 18:58:01

Bonsoir Reivax.

La réponse est dans ma question au tout début de ce fil de discussion. Je reproduis le code utilisé dans ce fichier anniv.js.

Note que ce que je cherche est de faire apparaître une pop-up à une date déterminée, au lieu d'un texte au bas d'une page. @+
Michel.

Répondre à mijad

14

Reivax962, le 20 mar 2007 à 10:09:53

Oui, sauf que si tu n'as rien modifié dans ce script, ça ne fonctionnera pas :)

La page en question doit être appelée en rajoutant ?nom=Serge par exemple...

Répondre à Reivax962

15

mijad, le 20 mar 2007 à 11:07:05

Bonjour Reivax.

Résumons... Dans mon fichier "anniv.js" qui reprends toutes les dates d'anniversaire, j'ai ceci :

function TodayDate() {
var m = new Array( "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
var today = new Date();
var day = today.getDate();
return (day + " " + m[today.getMonth()]);
}
var date = TodayDate();

if (date == "20 mars") 
{
window.open('13-pop-up/anniv.htm?nom=Michel','',
toolbar=0,menubar=0,location=0,scrollbars=1,
width=577,height=365'); }


Sur ma page "menu.htm", celle où la carte est appelée, j'ai ceci :

<script language="JavaScript" src="00-pages/anniv.js" type="text/JavaScript"></script>


Enfin, sur ma page "anniv.htm", j'ai ceci :

Dans le Head :
<script language="javascript">
function setNom()
{
var url = window.location.href;
var pos = url.indexOf("?nom=") + 5;
var nom = "";
var resultat = "";
if (pos != -1+5)
nom = url.substring(pos);
document.getElementById("span_nom").innerHTM = nom;
}
</script>


Dans le Body :
<span id="span_nom"> </span>


Et çà ne m'affiche toujours pas ma page "anniv.htm". :-(
Qu'est-ce que j'oublie ? A bientôt,
Michel.

Répondre à mijad

16

mijad, le 21 mar 2007 à 14:44:37

OK, mon problème est résolu.
Je mentionnais un chemin erroné vers "anniv.htm". Désolé de ne pas l'avoir vu plus vite.

Pour "anniv.htm", j'ai utilisé un deuxième fichier "js" (une copie de l'original en fait) et tout roule bien. Encore merci à tous et @+
Michel.

Répondre à mijad

17

Reivax962, le 21 mar 2007 à 14:51:40

Ouf !
J'avoue que je ne comprenais plus où était le problème :)

Bon courage pour la suite !

Répondre à Reivax962

18

 mijad, le 21 mar 2007 à 17:53:19

Merci Reivax.

En fait, après avoir retrouvé le bon "path" vers mon fichier, j'ai encore ramé un peu avec function setNom() dans le fichier "anniv.htm", alors pour ce fichier j'ai réutilisé la procédure que j'utilisais avant. J'ai donc un "JS" avec "window.open()" sur la page qui appelle la pop-up et un autre avec "document.write()" sur la pop-pup "anniv.htm".

Espérons que çà aidera d'autres personnes... Merci et @+
Michel.

Répondre à mijad