Récupérer un ID sur une autre page Web [HTML/CSS][JavaScript] - Javascript/Node.js - Programmation
Marsh Posté le 01-02-2019 à 20:28:55
Bonjour,
Pas certain d'avoir compris. Sache néanmoins que tu ne peux pas communiquer grâce à un navigateur avec une autre page en utilisant le JS, sauf si cette page est sur le même domaine.
Regarde "cross-domain policy".
Marsh Posté le 02-02-2019 à 10:09:18
Merci de ta réponse.
En gros, j'ai une page de démarrage personnalisée sur mon navigateur. Et je souhaiterai avoir accès à la page 192.168... de la box.
Comme je peux afficher la page du routeur (192.168...) dans ma page de démarrage avec un iframe, je me demandais si le JS avait accès à cette "seconde" page (192.168....)
Est-ce plus clair ?
Du coup, est-ce sur le même domaine?
Merci,
bonne journée
Marsh Posté le 02-02-2019 à 12:32:55
Je doute, le plus simple reste de tester :
Code :
|
Marsh Posté le 03-02-2019 à 01:58:32
Salut,
J'ai testé ta méthode, merci pour la piste.
Le débogueur Firefox me dit:
Citation : SecurityError: Permission denied to access property "document" on cross-origin object |
Le code testé, si ça intéresse quelqu'un:
Code :
|
C'est à la ligne 3 que ca bug!
Cela doit vouloir dire que ce n'est pas le même domaine . Mais je ne comprends pas pourquoi on peut afficher une page, mais pas utiliser du javascript dessus.
EDIT:
J'ai fait quelques recherches du côté du Cross-Origin Resource Sharing (CORS)
Cependant, on trouve cet info sur cette page :
Citation : Voici quelques exemples de ressources qui peuvent être embarqués malgré leur origine incomptatible avec la same-origin policy : |
Du coup, théoriquement, ca devrait pouvoir marcher.
EDIT2:
J'ai eu une idée: est-ce une bonne piste?
Créer un objet en copiant la page. La copie en mémoire sera donc "locale", puis extraire les données souhaitées.
Parce que je reste complétement dubitatif sur le fait de pouvoir afficher une page, avec ses scripts (donc obtenir un code HTML), et de ne pas pouvoir lire ce code avec son propre JS... Ca ne vous étonne pas??
Marsh Posté le 03-02-2019 à 14:52:05
Pistes en exploration:
Lien W3C
J'ai cherché du côté de la valeur sandbox="allow-same-origin"
En théorie: "Allows the iframe content to be treated as being from the same origin"
J'ai testé en croisé avec seamless, dont l'utilité m'échappe un peu.
Des informations sur le sujet:
Voila une page sur ce Lien <ICI>
L'intérêt pour cette faire est au paragraphe :
Citation : iframe et scripts |
Marsh Posté le 03-02-2019 à 17:24:58
Tout ça est logique, c'est juste une question de sécurité. Imagine, via un iframe je te fais croire que tu te connectes au site de ta banque et avec un JS j'intercepte les requêtes contenant ton identifiant et ton mdp...
Marsh Posté le 03-02-2019 à 20:31:46
Salut,
Je comprends les impératifs de sécurité.
C'est une réflexion basique que je me fais, car je souhaite juste "lire" des informations qui sont affichées sur la page fille. Mais comme tu dis, avec JS, il n'y a pas de distinction, et on peut tout aussi simplement lire, écrire et compter même avec de mauvaises intentions...
Et de toutes façons, quand on tombe sur une difficulté en programmation, on peste toujours, ca fait du bien
EDIT:
Pour résumer, je n'y suis pas encore arriver. Je vais tester la méthode Window.postMessage.
Si j'ai un peu d'énergie, je testerai la méthode de copie. Certainement que d'autres y ont pensé avant moi, mais je suis curieux
Et comme toujours, si vous avez des infos interessantes, je suis preneur.
Merci, bonne soirée
Marsh Posté le 03-02-2019 à 20:45:34
Oui tu peux tester mais cela veut dire que tu modifies la page de ta box.
Marsh Posté le 04-02-2019 à 14:26:11
En local, le plus simple pour doubler la crosspolicy c'est de modifier ton fichier host : si tu fait une entrée pour ta box qui pointe sur son IP et une entrée pour ta page d'accueil qui ont un nom de domaine en commun ça devrait fonctionner.
Sinon ta page pourrait être en php et aller chercher l'information ?
Marsh Posté le 04-02-2019 à 15:49:36
La solution du fichier host est pas mal à mon avis, le php ça veut dire de lancer un serveur à chaque fois...
Marsh Posté le 04-02-2019 à 18:02:07
Salut,
Merci pour vos réponses.
Pour le PHP, malheureusement, ca va être trop compliqué pour ce que je veux en faire: c'est une page de démarrage personnalisée en gros.
Comme suggérer par MaybeEijOrNot, ca va faire lourd pour rien
@mechkurt: Je dois t'avouer que je ne maitrises pas bien ces choses là. Si vous avez des infos plus précises et pratiques sur la marche à suivre, ce serait avec plaisir!
Sinon comme d'hab, Google est mon ami
Merci, Bonne soirée
Marsh Posté le 01-02-2019 à 20:18:27
Bonjour à tous,
Je viens solliciter la clairvoyance des savants programmeurs en HTML/ JS.
Après de multiples recherches, je n'ai pas trouvé de réponse tranchée.
Voici mon problème:
Sur une page "index" (HTML/CSS/JS), j'aimerai afficher la valeur d'un ID présent sur une autre page "source". Cette page est le 192.168.1.1 de la box, l'ID est le statut de la connexion à internet.
Sur la même page, le javascript me permet avec des commandes comme "var data=document.getElementById("Id" )" et "document.getElementById("data" ).innerHTML = val" de récupérer et modifier le code HTML.
Mais sur une autre page, je ne sais pas.
Je peux afficher dans un <iframe> la page en question, mais je voudrais juste la valeur d'un Id en particulier, pas la page entière
Est-ce faisable simplement ??
Merci pour vos réponses.
Message édité par ge_laf le 01-02-2019 à 20:18:55
---------------
---------------