Javascript ouvrir new page et lancer fonction

Fermé
verbatum0 - 28 mars 2011 à 12:50
boly38 Messages postés 267 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 29 septembre 2016 - 31 mars 2011 à 14:02
Bonjour,

J'ai réalisé un diaporama de slides et maintenant je souhaiterais pouvoir, à partir d'une autre page du site, accéder directement à un des slides.
Je dois donc ouvrir une nouvelle fenetre et lancer la fonction 'slide'.
Ca ne marche pas. Et je n'arrive pas non plus à mettre des ancrages sur chaque slide. Quelqu'un peut m'aider. merci.
Marie

voici le script utilisé pour les slides (auteur Niu) :
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<style type="text/css">

#contenir{ overflow:hidden; width:500px; height:500px; position:absolute}
.div{display:inline;width:500px;height:500px;}
</style>
<script type="text/javascript">

function slide(nombre){
nombre=(nombre*500)-500;
$('#bouge').animate({
right: ''+nombre+'px',
},300);
}
</script>
<body>
<a href="javascript:void(0)" onclick="slide('1')">div1</a> - <a href="javascript:void(0)" onclick="slide('2')">div2</a> - <a href="javascript:void(0)" onclick="slide('3')">div3</a>

<br />
<div id="contenir">

<div id="bouge" style="width:1500px;position:relative;">

<div class="div" style="position:absolute;left:0px">
Lorem ipsum dolor sit amet
<img src="http://www.insu.cnrs.fr/..." width="500" height="500"/>
</div>
<div class="div" style="position:absolute;left:500px">
Mauris interdum volutpat lobortis
<img src="http://chachatelier.fr/programmation/images/mozodojo-original-image.jpg" width="500" height="500"/>
</div>
<div class="div" style="position:absolute;left:1000px">
Praesent ac magna nec
<img src="http://helios.gsfc.nasa.gov/image_euv_press.jpg" width="500" height="500"/>
</div>

</div>
</div>
</body>
A voir également:

1 réponse

boly38 Messages postés 267 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 29 septembre 2016 80
28 mars 2011 à 16:12
pour l'adresse de la fenêtre à ouvrir, ajoute "#(id)" à la fin; exemple :
 http://monsite/mondiapo.html#314


sur la page du diaporama, ajoute une fonction javascript "initDiapo()" qui :
- récupère l'adresse courante (document.location)
- détermine si dans cette chaine un id de diapo à visualiser est présent
- si oui, le détermine pour appeller la fonction slide(nombre)

programmer l'exécution d'initDiapo() au chargement de la page mondiapo.html avec :
 window.onload = initDiapo;
1
Merci ta reponse et cette démarche qui me semble pertinente. Hélas, je suis incapable de coder cette fonction initDiapo(). Mes souvenirs de javascript sont loin, je ne suis pas programmatrice et la recherche du id dans l'adresse courante va me prendre des années...Et enfin je ne sais meme pas ou placer window.onload = initDiapo dans ma page du diaporama.
Aurais-tu un site qui reprend cette démarche, je pourrais essayer de m'inspirer du script si j'arrive à le décoder.
Sinon, je vais me rabattre sur des popup.
La visite de mon site www.enjoylondres.fr te montrera l'étendue de mon savoir...(la version avec javascript est en cours).
0
boly38 Messages postés 267 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 29 septembre 2016 80
29 mars 2011 à 09:16
voici le code ci-dessous. Le script s'ajoute dans le head html.

Attention quand même car le caractère dièse a une particularité : il ne recharge pas la page courante si elle est déjà affichée (faire un rechargement navigateur pour tester)..
ou sinon utiliser un autre séparateur ! :)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <script language="JavaScript"><!--
    function slide(numDiapo) {
      alert("afficher la diapo n°" + numDiapo);
    }
    function initDiapo() {
      // récupère l'adresse courante
      var adresseCourante = document.location.href;
      // trace : affiche l'adresse
      // document.write(adresseCourante + "<br/>");
      // idDiapo par defaut
      var idDiapo = 0;
      // séparateur dans l'adresse
      var sep = '#';
      // si on trouve un dièse
      if (adresseCourante.indexOf(sep) > 0) {
        // on découpe l'adresse sur le caractère sep 
        var splitAdresse = adresseCourante.split(sep);
        // on récupère dans l'adresse la dernière partie séparée par un dièse
        idDiapo = splitAdresse[splitAdresse.length - 1];
      }
      // affiche le n° de diapo à afficher
      slide(idDiapo)
    }
    window.onload = initDiapo;
  --></script>

  </head>
  <body>
     diaporama
  </body>
</html>
0
grand merci pour ce code. J'aurais été incapable d'écrire ça. Et ça marche après quelques heures à essayer de débuguer ma page car il y avait un onload load() qui était dans le <body> et qui faisait interférence. Chapeau !
0
boly38 Messages postés 267 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 29 septembre 2016 80
31 mars 2011 à 14:02
peux-tu passer cette question à résolue ?
0