Différence Chrome/Edge
Résolu/Fermé
Rocky92
Messages postés
179
Date d'inscription
mardi 21 février 2012
Statut
Membre
Dernière intervention
7 août 2021
-
Modifié le 16 févr. 2020 à 11:38
Rocky92 Messages postés 179 Date d'inscription mardi 21 février 2012 Statut Membre Dernière intervention 7 août 2021 - 17 févr. 2020 à 22:37
Rocky92 Messages postés 179 Date d'inscription mardi 21 février 2012 Statut Membre Dernière intervention 7 août 2021 - 17 févr. 2020 à 22:37
A voir également:
- Différence Chrome/Edge
- Desinstaller edge - Guide
- Chrome os flex - Guide
- Difference tcp udp - Guide
- Ublock origin chrome android - Télécharger - Outils pour navigateurs
- Différence entre bloquer et supprimer sur whatsapp ✓ - Forum Snapchat
4 réponses
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
16 févr. 2020 à 11:46
16 févr. 2020 à 11:46
Bonjour,
Vu que le document.open supprime tout le contenu de la page.. il supprime également le JS et les includes ( le load de ton jquery )
Je pense que ça fonctionne dans certains navigateurs en fonction du fonctionnement de la mise en cache (ou non) du javascript chargé dans ta page lors de son ouverture.
Si, ton code actuel génère bien le html voulu... tu n'as qu'a ajouter dans le document write, l'écriture du code js de tes fonctions...
NB: Vu que tu n'utilises jquery que pour faire un
le mieux serait de le retirer et de simplement déplacer ton code JS à la fin de ta page ( juste avant le </body> )
Vu que le document.open supprime tout le contenu de la page.. il supprime également le JS et les includes ( le load de ton jquery )
Je pense que ça fonctionne dans certains navigateurs en fonction du fonctionnement de la mise en cache (ou non) du javascript chargé dans ta page lors de son ouverture.
Si, ton code actuel génère bien le html voulu... tu n'as qu'a ajouter dans le document write, l'écriture du code js de tes fonctions...
NB: Vu que tu n'utilises jquery que pour faire un
$(document).ready
le mieux serait de le retirer et de simplement déplacer ton code JS à la fin de ta page ( juste avant le </body> )
Rocky92
Messages postés
179
Date d'inscription
mardi 21 février 2012
Statut
Membre
Dernière intervention
7 août 2021
29
16 févr. 2020 à 15:49
16 févr. 2020 à 15:49
Je comprends, et c'est bien ce que je pensais. Après tout, ce comportement est logique: la nouvelle page créée après le document.open ne contient aucun code JS, donc normal que les fonctions soient introuvables. Maintenant pourquoi ça fonctionne dans Chrome? Sans doute car tout est dans le cache.
Comme tu le dis, je pourrais très bien ajouter mes petites fonctions dans la nouvelle page par des document.write, ça marcherait, mais le problème c'est que la valeur de l'index, défini en variable globale dans la page d'origine, serait perdu. J'ai déjà essayé dans Edge et il me dit alors que la variable 'index' est inconnue, et l'execution du JS s'arrête brutalement.
La solution serait peut-être de ne pas créer un nouvelle page toute vierge, mais d'adapter la page existante en y ajoutant les éléments nécessaires. J'ai lu que document.open permet d'écrire par dessus le document courant ou d'y ajouter du contenu (https://developer.mozilla.org/fr/docs/Web/API/Document/open) mais je ne vois pas comment ajouter du contenu plutôt que créer une nouvelle page. Je pensais que open prendrait des paramètres permettant de choisir, mais je 'ai rien trouvé dans ce sens.
Si je pouvais modifier la page courante en enlevant/ajoutant des éléments, je serais sauvé puisque la code JS et les variables globales seraient conservées, mais je ne sais pas comment faire ça...
Merci de votre aide,
Eric
Comme tu le dis, je pourrais très bien ajouter mes petites fonctions dans la nouvelle page par des document.write, ça marcherait, mais le problème c'est que la valeur de l'index, défini en variable globale dans la page d'origine, serait perdu. J'ai déjà essayé dans Edge et il me dit alors que la variable 'index' est inconnue, et l'execution du JS s'arrête brutalement.
La solution serait peut-être de ne pas créer un nouvelle page toute vierge, mais d'adapter la page existante en y ajoutant les éléments nécessaires. J'ai lu que document.open permet d'écrire par dessus le document courant ou d'y ajouter du contenu (https://developer.mozilla.org/fr/docs/Web/API/Document/open) mais je ne vois pas comment ajouter du contenu plutôt que créer une nouvelle page. Je pensais que open prendrait des paramètres permettant de choisir, mais je 'ai rien trouvé dans ce sens.
Si je pouvais modifier la page courante en enlevant/ajoutant des éléments, je serais sauvé puisque la code JS et les variables globales seraient conservées, mais je ne sais pas comment faire ça...
Merci de votre aide,
Eric
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
16 févr. 2020 à 16:53
16 févr. 2020 à 16:53
Si c'est juste le contenu de la page que tu veux modifier... il te suffit de supprimer le contenu du body et d'y écrire ce que tu souhaites.
De cette façon tu n'effaces pas le <head> de ta page et donc de tes JS .
De cette façon tu n'effaces pas le <head> de ta page et donc de tes JS .
Rocky92
Messages postés
179
Date d'inscription
mardi 21 février 2012
Statut
Membre
Dernière intervention
7 août 2021
29
>
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
16 févr. 2020 à 18:26
16 févr. 2020 à 18:26
Oui, c'est exactement ce que je veux faire, mais je ne sais pas comment supprimer le body. Je sais en créer un autre avec document.createElement, mais je ne sais pas en supprimer un. Tu peux m'indiquer comment faire ?
Merci,
Eric
Merci,
Eric
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
>
Rocky92
Messages postés
179
Date d'inscription
mardi 21 février 2012
Statut
Membre
Dernière intervention
7 août 2021
Modifié le 16 févr. 2020 à 19:07
Modifié le 16 févr. 2020 à 19:07
J'ai l'impression que tu as du mal à faire des recherches sur internet.
Bref...
Pour cibler le "body" de ton document
Pour effacer son contenu
Pour y mettre du contenu
</code>
Bref...
Pour cibler le "body" de ton document
var monBody = document.body;
Pour effacer son contenu
monBody.innerHTML = "";
Pour y mettre du contenu
<code js> monBody.innerHTML = "<div id='div_1'>Ceci est un exemple</div>";
</code>
Rocky92
Messages postés
179
Date d'inscription
mardi 21 février 2012
Statut
Membre
Dernière intervention
7 août 2021
29
>
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
16 févr. 2020 à 21:51
16 févr. 2020 à 21:51
Non, j'ai beaucoup cherché, et je n'aurais pas penser à faire innerHTML = "" pour effacer le body. Je cherchais plutôt une fonction de l'objet document pour cela, alors évidemment...
En tout cas, merci pour le coup de main.
En tout cas, merci pour le coup de main.
Rocky92
Messages postés
179
Date d'inscription
mardi 21 février 2012
Statut
Membre
Dernière intervention
7 août 2021
29
17 févr. 2020 à 22:37
17 févr. 2020 à 22:37
Merci, j'ai ré-écrit mon code en mettant un <div> contenant la partie variable de la page plutôt que d'écrire une nouvelle page à chaque fois. Ca marche parfaitement, aussi bien sous Chrome que sous Edge, et le code est bien plus propre.
Merci encore pour votre aide.
Merci encore pour votre aide.