Window.open et ouverture de fenêtre

Résolu/Fermé
mijad Messages postés 117 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 19 février 2023 - 12 mars 2007 à 13:59
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 19 juil. 2011 à 12:12
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.
A voir également:

7 réponses

Aquel Messages postés 199 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 1 octobre 2009 10
12 mars 2007 à 19:01
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+
1
Bonjour,

j'ai fait un petit tour sur le net et j'en conclus qu'il existe une grande confusion sur la syntaxe exacte de la fonction javascript window.open().

Les choses ne sont pas claires car certains parlent de window.open('blabla.aspx','mafenetre','height=100, width=...');

tandis que d'autres disent :window.open("blabla.aspx","mafenetre","height=100, width=...");

Il faut savoir : c'est le guillemet (") qu'il faut mettre ou bien c'est l'apostrophe (') ?

Cordialement.
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011 > michaelfby
30 déc. 2009 à 19:37
Bonjour,

Les deux sont utilisables indifféremment en javascript.

Xavier
0
pas tout à fait... en javascript, les guillets (") et apostrophes (') ont une différence : si on mets le nom d'une variable (ex: chat = "lily") entre " et ", la valeur sera utilisée (lily) tandis que si on met n'importe quoi entre ' et ' c'est le String qui sera utilité (chat).
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
19 juil. 2011 à 12:12
N'importe quoi ^^'
Là, tu parles de php... Vu qu'il n'y a pas de marqueur de variable en Javascript, comme le $ de php, le fonctionnement que tu décris serait tout simplement inutilisable et irréaliste !
0
mijad Messages postés 117 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 19 février 2023
13 mars 2007 à 11:47
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...
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
13 mars 2007 à 11:56
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
0
mijad Messages postés 117 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 19 février 2023 > Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
13 mars 2007 à 12:00
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.
0
Aquel Messages postés 199 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 1 octobre 2009 10
13 mars 2007 à 23:26
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+
0
mijad Messages postés 117 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 19 février 2023
15 mars 2007 à 13:47
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 ?
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
15 mars 2007 à 14:42
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
0
mijad Messages postés 117 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 19 février 2023 > Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
16 mars 2007 à 13:49
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.
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011 > Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
16 mars 2007 à 14:06
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
0
mijad Messages postés 117 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 19 février 2023 > Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
16 mars 2007 à 20:42
Je vérifierai çà lundi et je te tiens au courant.

Merci et @+
Michel.
0
mijad Messages postés 117 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 19 février 2023
20 mars 2007 à 11:07
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mijad Messages postés 117 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 19 février 2023
21 mars 2007 à 14:44
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.
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
21 mars 2007 à 14:51
Ouf !
J'avoue que je ne comprenais plus où était le problème :)

Bon courage pour la suite !
0
mijad Messages postés 117 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 19 février 2023
21 mars 2007 à 17:53
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...
0