document.open : pourquoi mon code ne marche-t-il pas ?

Le
Fabrice DELENTE
Bonjour.

Désolé si cette question a déjà été posée, mais je n'arrive à rien trouver
sur le réseau qui semble ressembler.

J'ai testé le code suivant :

--
<html>
<body>

<script type="text/javascript">

var oldDoc=window.document;

function doc1() {
var newDoc=oldDoc.open("text/html","replace");

newDoc.write("document1<p>");
newDoc.write("<form><input type=button value="aller au document 2" onclick="doc2()"></form>");
newDoc.close();

oldDoc=window.document;
}

function doc2() {
var newDoc=oldDoc.open("text/html","replace");

newDoc.write("là c'est le document 2<p>");
newDoc.write("<form><input type=button value="retour au document 1" onclick="doc1()"></form>");
newDoc.close();

oldDoc=window.document;
}

doc1();

</script>

</body>
</html>
--

dans firefox, ça ne marche pas; je peux passer du document 1 au document 2,
mais impossible de retourner au document 1 lorsque je suis sur le document
2.

Qu'est-ce que je n'ai pas compris dans document.open() ?

Merci.

À bientôt.

--
Fabrice DELENTE

SVP, ne m'envoyez pas de pièces jointes aux formats Word, PowerPoint, RTF
(formats propriétaires). Utilisez des formats libres comme txt, html,
OpenOffice.Org ou PDF. Merci. Voir
http://www.gnu.org/philosophy/no-word-attachments.fr.html
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre Goiffon
Le #730320
Fabrice DELENTE wrote:
J'ai testé le code suivant :

--------------------------------------------------------------------------
<html>
<body>

<script type="text/javascript">

var oldDoc=window.document;

function doc1() {
var newDoc=oldDoc.open("text/html","replace");

newDoc.write("document1<p>");
newDoc.write("<form><input type=button value="aller au document 2" onclick="doc2()"></form>");
newDoc.close();

oldDoc=window.document;
}

function doc2() {
var newDoc=oldDoc.open("text/html","replace");

newDoc.write("là c'est le document 2<p>");
newDoc.write("<form><input type=button value="retour au document 1" onclick="doc1()"></form>");
newDoc.close();

oldDoc=window.document;
}

doc1();

</script>

</body>
</html>
--------------------------------------------------------------------------

dans firefox, ça ne marche pas; je peux passer du document 1 au document 2,
mais impossible de retourner au document 1 lorsque je suis sur le document
2.


Je suis assez surpris : quel est le besoin sous-jacent ?

Fabrice DELENTE
Le #728717
Je suis assez surpris : quel est le besoin sous-jacent ?


Le but est de rester dans le même fichier; le 1er document est un tableau où
on rentre des valeurs numériques et on coche des cases; le 2ème document
calcule un résultat à partir des valeurs, en fonction des cases cochées; si
on veut faire un autre choix pour les cases cochées, il faut revenir en
arrière au 1er document.

Je veux rester dans le même fichier, car ce programme est destiné à être
installé et utilisé par des collègues pas informaticien pour 2 sous (je ne
le suis pas moi-même, je dépanne seulement), donc en ayant un seul fichier
la "difficulté" d'installation est minimum.

Enfin, le besoin est aussi de comprendre pourquoi ça ne marche pas :^) je
n'aime pas rester avec un problème sans réponse sur les bras.

À bientôt.

--
Fabrice DELENTE

SVP, ne m'envoyez pas de pièces jointes aux formats Word, PowerPoint, RTF
(formats propriétaires). Utilisez des formats libres comme txt, html,
OpenOffice.Org ou PDF. Merci. Voir
http://www.gnu.org/philosophy/no-word-attachments.fr.html

François Girault
Le #728715
Je suis assez surpris : quel est le besoin sous-jacent ?


Le but est de rester dans le même fichier; le 1er document est un tableau où
on rentre des valeurs numériques et on coche des cases; le 2ème document
calcule un résultat à partir des valeurs, en fonction des cases cochées; si
on veut faire un autre choix pour les cases cochées, il faut revenir en
arrière au 1er document.


Utiliser deux éléments <div> dont on ajuste le style (display) et le
contenu (innerHTML) en conséquence me semble la bonne solution.

--
FG


ASM
Le #728714

Qu'est-ce que je n'ai pas compris dans document.open() ?


c'est surtout à propos de document.write() que tu n'as pas compris.

quand tu fais écrire le document 2
ça efface tout le document 1 (old)

il n'y a donc plus le javascript des fonctions ...
... alors ... forcément ... ça fonctionne moins bien ! :-(

Pour faire de la modification de contenu il vaudrait mieux te tourner
vers le DOM


--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Fabrice DELENTE
Le #728713
il n'y a donc plus le javascript des fonctions ...
... alors ... forcément ... ça fonctionne moins bien ! :-(


Ok, je n'avais pas pensé à ça :^)

Merci.

À bientôt.

--
Fabrice DELENTE

SVP, ne m'envoyez pas de pièces jointes aux formats Word, PowerPoint, RTF
(formats propriétaires). Utilisez des formats libres comme txt, html,
OpenOffice.Org ou PDF. Merci. Voir
http://www.gnu.org/philosophy/no-word-attachments.fr.html

Pierre Goiffon
Le #728712
François Girault wrote:
Je suis assez surpris : quel est le besoin sous-jacent ?


Le but est de rester dans le même fichier; le 1er document est un
tableau où
on rentre des valeurs numériques et on coche des cases; le 2ème document
calcule un résultat à partir des valeurs, en fonction des cases
cochées; si
on veut faire un autre choix pour les cases cochées, il faut revenir en
arrière au 1er document.


Utiliser deux éléments <div> dont on ajuste le style (display) et le
contenu (innerHTML) en conséquence me semble la bonne solution.


Manipuler 2 div avec des display= 'none' et display= '' me parait en
effet bien moins hasardeux. Puisque vous voulez 2 écrans, pourquoi donc
effectuer tout le traitement côté client ??



Publicité
Poster une réponse
Anonyme