Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
783 connectés 

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  [HTML/CSS][JavaScript] Récupérer un ID sur une autre page Web

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[HTML/CSS][JavaScript] Récupérer un ID sur une autre page Web

n°2328546
ge_laf
Posté le 01-02-2019 à 20:18:27  profilanswer
 

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

---------------
---------------
mood
Publicité
Posté le 01-02-2019 à 20:18:27  profilanswer
 

n°2328549
MaybeEijOr​Not
but someone at least
Posté le 01-02-2019 à 20:28:55  profilanswer
 

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".


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2328581
ge_laf
Posté le 02-02-2019 à 10:09:18  profilanswer
 

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


---------------
---------------
n°2328593
MaybeEijOr​Not
but someone at least
Posté le 02-02-2019 à 12:32:55  profilanswer
 

Je doute, le plus simple reste de tester :

Code :
  1. var iframe = document.getElementById('myiframe');
  2. var el =  iframe.contentWindow.document.getElementById('myelement');


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2328610
ge_laf
Posté le 03-02-2019 à 01:58:32  profilanswer
 

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 :
  1. var Cadre_brut = document.getElementById("mon_Iframe" ); // ID dans la balise iframe
  2. var Cadre_Contenu = Cadre_brut.contentWindow;
  3. var x = Cadre_Contenu.document.getElementById("Element" );
  4. alert(x.innerHTML);


 
C'est à la ligne 3 que ca bug!
Cela doit vouloir dire que ce n'est pas le même domaine :D. 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 :
    JavaScript avec <script src="..."></script>. Les messages d'erreur de syntaxe ne sont disponibles que pour les script ayant la même origine.
N'importe quoi avec <frame> et <iframe>. Un site peut utiliser l'entête X-Frame-Options pour interdire cela depuis une page n'ayant pas la même origine.


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??


Message édité par ge_laf le 03-02-2019 à 14:32:54

---------------
---------------
n°2328613
ge_laf
Posté le 03-02-2019 à 14:52:05  profilanswer
 

Pistes en exploration:
 
 

  • Méthode Window.postMessage


  • HTML <iframe> sandbox Attribute

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:
 

  • iFrame chez Mozilla / MDN

Voila une page sur ce Lien <ICI>
L'intérêt pour cette faire est au paragraphe :

Citation :

iframe et scripts
Les scripts qui tentent d'accéder au contenu de l'iframe doivent respecter les règles de même origine et ne peuvent pas accéder à la plupart des propriétés d'une autre fenêtre s'ils ont été chargés depuis un domaine différent. Cela s'applique également aux scripts d'un iframe qui souhaitent accéder au contexte englobant. On peut toutefois communiquer entre différents domaines grâce à la méthode Window.postMessage().


Message édité par ge_laf le 03-02-2019 à 15:40:39

---------------
---------------
n°2328622
MaybeEijOr​Not
but someone at least
Posté le 03-02-2019 à 17:24:58  profilanswer
 

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...


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2328625
ge_laf
Posté le 03-02-2019 à 20:31:46  profilanswer
 

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 :D :D :D
 
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 :D
 
Et comme toujours, si vous avez des infos interessantes, je suis preneur.
Merci, bonne soirée


Message édité par ge_laf le 03-02-2019 à 20:35:31

---------------
---------------
n°2328627
MaybeEijOr​Not
but someone at least
Posté le 03-02-2019 à 20:45:34  profilanswer
 

Oui tu peux tester mais cela veut dire que tu modifies la page de ta box.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2328685
mechkurt
Posté le 04-02-2019 à 14:26:11  profilanswer
 

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 ?


---------------
D3
mood
Publicité
Posté le 04-02-2019 à 14:26:11  profilanswer
 

n°2328691
MaybeEijOr​Not
but someone at least
Posté le 04-02-2019 à 15:49:36  profilanswer
 

La solution du fichier host est pas mal à mon avis, le php ça veut dire de lancer un serveur à chaque fois...


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2328701
ge_laf
Posté le 04-02-2019 à 18:02:07  profilanswer
 

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 :D
 
@mechkurt: Je dois t'avouer que je ne maitrises pas bien ces choses là. :D :D 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 [:michlastar] [:michlastar] [:t c]
 
Merci, Bonne soirée


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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  [HTML/CSS][JavaScript] Récupérer un ID sur une autre page Web

 

Sujets relatifs
[HTML/CSS][Javascript/Node.js] Formation Toulouse / Haute-Garonne[HTML/CSS/Javascript] Vidéo Youtube
[HTML/CSS/Javascript] Nombreuses Images avec mignature[HTML/CSS/Javascript] Lien et script à partir de l'attribut alt
[HTML/CSS/Javascript] probleme checkForm is not definied[HTML/CSS/Javascript] Problème d'affichage avec ie
[HTML/CSS/Javascript/(php ?)] Widget sidebar[HTML/CSS/Javascript] Formulaire à remplir
[HTML/CSS/Javascript] Petit problème que je n'arrive pas à cerner...[HTML/Css/Javascript] Listes liées avec la librairie prototype
Plus de sujets relatifs à : [HTML/CSS][JavaScript] Récupérer un ID sur une autre page Web


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR