11519 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

je débute dans le javascript, j'aimerais accéder à l'id d'un élément situé sur une autre page où s'éxécute mon code js ; du coup le classique document.getElementById(IdElement) ne fonctionne pas ; j'ai tatonné avec window.location.href ou pathname mais ça ne fonctionne pas ...

Auriez vous une idée ?
javaScript n'a accés qu'au DOM de la page courante, la page chargée.
C'est assez comprehensible, sans compter les risques de sécurités/failles qui limitent ou interdisent l'interaction brut avec des documents externes.

Essai une méthode via ajax, pour chargée ta page externe dans le document en cours.
Modifié par gc-nomade (06 May 2014 - 14:26)
Hello,

Que souhaites tu faire ?
Est ce que tu as une page A avec une valeur C et une page B, tu appuie sur un bouton et tu change de page et tu veux récupérer C ?
Si c'est le cas tu peux simplement le passer en paramètre.
www.monsite.com/pageA
appuie sur le bouton te renvoie vers
www.monsite.com/pageB?maValeur=C
et après tu utilise les location.search que tu split pour récupérer ta valeur C.

Hésite pas à demander. Si jamais ce n'est pas ça, on souhaiterait soit un petit bout de code, soit une idée de ce que tu veux réellement faire.

Bonne journée. Smiley murf
Bonjour,

merci déjà de vos réponses, mon but c'est qu'en cliquant sur un lien de ma page 1, ça me renvoie vers un article de ma page 2 ; mais cet article est en opacity: 0 car il est en absolu avec d'autres articles qui occupent tous le même espace. Du coup j'aimerais que cet article, après avoir cliqué sur le lien 1 de ma page A, soit en opacity: 1 ; mais bon pour ça il me faut son id.

Et du coup, dans mon cas, je ne pense pas que le passage en paramètres résolverait mon souci.
Donc si je comprends bien,

tu souhaites accéder à ton article dans une popin ? je pense que dans ce cas tu es obligé de passer par une iframe (même si c'est le mal) avec dans l'url, l'url de ton article (du moins c'est le plus simple.

Bon courage, n'hésite pas à poser d'autre question (c'est un sujet qui m'intéresse).
ah, si c'est en passant d'une page à une autre, genre: http://monsite/page2.html#mondiv , tu as le selecteur :target qui peut-être utile :

div:target {
opacity:1;
}


si tu met dans le CSS :
#mondiv {
opacity:0;
}

alors il te faudra un sélecteur au moins du même poids ou supérieur pour que la regele soit prise en compte.
#mondiv:target {
opacity:1;
}

++
Merci de vos réponses, je ne vois pas trop ce qu'est une popin javascripteur, tu as des exemples ?

Sinon oui j'ai été obligé de m'en tirer avec des target pour que mes articles apparaissent dés le clic sur leurs liens respectifs, après ce qui me gênait dans les target c'est le scroll provoqué obligatoirement. Car du coup quand je suis sur ma page 2, là où il y a tous les articles, j'ai fait un menu en haut de ma page qui recense tous les services auxquels on peut accéder en cliquant sur leurs liens.
Le target fait que ça scroll direct sur l'article, mais du coup mon menu est caché.

J'avais bien fait un code javascript pour désactiver ce scroll lorsque l'on est sur cette page 2. J'attribuais une class qui rendait visible mes articles quand on cliquait sur leurs liens respectifs dans le menu en haut de page, c'était niquel. Mais bon ce code ne fonctionne que sur ma page 2 ; concernant les liens sur la page 1 j'ai la problématique que je vous ai dit, mes articles restent en opacity: 0

Du coup je reviens vers le target et compte placer mon menu en position: fixed ; mais par contre en faisant cela, mon menu sort du flux et en zoomant ou dé zoomant ma page, celui ci ne reste jamais à la même place ... Vous avez peut-être une solution pour ça ?
regard le principe de mon blog : http://www.nngsi.fr/?inc=blg

quand tu ouvres le blog, tu as le choix de voir plus à propos d'un article ou de choisir un article dans les plus récents ou les plus populaires.
Le choix ouvre une autre page, mais qui reste incluse dans le site !!
Si c'est cela que tu cherches, je te donnerai la marche à suivre.

Claude
Modifié par francais en Chine (07 May 2014 - 11:28)
a écrit :
mais cet article est en opacity: 0 car il est en absolu avec d'autres articles qui occupent tous le même espace.


Faire ça avec opacity me paraît plutôt douteux. Ca sent la ruse de SEO à plein nez, et ça ne marche pas avec certains navigateurs (oui il y a encore des gens qui sont toujours bloqués sur IE8). Ca devrait plus logiquement se faire avec display...

@francais en Chine: note d'accessibilité: quand on navigue sur ton blog avec un lecteur d'écran, on ne perçoit rien quand on clique sur un lien, alors on crois que ça ne marche pas. Pour faire juste, il faudrait que le focus soit déplacé au début de l'article nouvellement chargé. Une bonne vieille ancre #XXX est le meilleur moyen et le plus facile pour y arriver, soit dit en passant.
QuentinC : merci de ta remarque, je vais me pencher sur ce problème.
Très honnêtement je n'ai pas réaliser ce site en pensant à une accessibilité à 100%.
Quant à l'utilisation des ancres, cela pose problème avec XMLHttpRequest, et comme pour ma question vues 200 fois mais reste sans réponse à propos de js, il semble qu'il n'existe pas de solution...
Non pas de ruse de SEO, avec une transition je trouvais ça juste plus chouette avec de l'opacité qu'un display voilà tout ...
J'ai eu un peu de mal avec ta problématique.
Ce que tu appelles "page 1" et "page 2", ce sont bien 2 fenêtres/navigateurs différents ?
Et si oui, comment la seconde fenêtre est ouverte ?

Car si tu ouvres une nouvelle fenêtre par JS depuis ta première fenêtre, alors tu peux accéder facilement au DOM n°2 depuis un script en fenêtre 1.