2010-08-16 3 views
0

J'ai créé un diaporama simple en utilisant Javascript, mais maintenant je veux ajouter des liens aux images lorsqu'elles sont glissées, de sorte qu'un pdf s'ouvre dans une fenêtre séparée. Quelqu'un peut-il me dire comment faire cela? Voici le script que j'ai jusqu'ici. Merci! JuliaAjout de liens hypertexte vers un diaporama à l'aide de javascript

   var dimages=new Array(); 
    var numImages=3; 
    for (i=0; i<numImages; i++) 
    { 
     dimages[i]=new Image(); 
     dimages[i].src="images/image"+(i+1)+".jpg"; 
    } 
    var curImage=-1; 

    function swapPicture() 
    { 
     if (document.images) 
     { 
     var nextImage=curImage+1; 
     if (nextImage>=numImages) 
      nextImage=0; 
     if (dimages[nextImage] && dimages[nextImage].complete) 
     { 
      var target=0; 
      if (document.images.myImage) 
      target=document.images.myImage; 
      if (document.all && document.getElementById("myImage")) 
      target=document.getElementById("myImage"); 

      // make sure target is valid. It might not be valid 
      // if the page has not finished loading 
      if (target) 
      { 
      target.src=dimages[nextImage].src; 
      curImage=nextImage; 
      } 

      setTimeout("swapPicture()", 5000); 

     } 
     else 
     { 
      setTimeout("swapPicture()", 500); 
     } 
     } 
    } 

    setTimeout("swapPicture()", 5000); 
+1

Salut, bienvenue à Stack Overflow! Ne pas envoyer une chaîne à 'setTimeout', mais une fonction. Voir https://developer.mozilla.org/en/window.setTimeout: "Utiliser cette syntaxe n'est pas recommandé pour les mêmes raisons que l'utilisation de [eval()] (https://developer.mozilla.org/en/Core_JavaScript_1. 5_Reference/Global_Functions/eval # Don% 27t_use_eval!) "De plus, vous voudrez probablement utiliser [' setInterval'] (https://developer.mozilla.org/en/DOM/window.setInterval) à la place. Et arrêtez d'utiliser 'document.all', c'est [* very * old] (http://stackoverflow.com/questions/2408424/document-all-vs-document-getelementbyid). –

Répondre

0

Je pense que le mieux que vous pouvez faire est d'ajouter un élément d'ancrage à votre HTML, comme

<a id="imagelink"><img id="myImage" …></a> 

et changer son href (et peut-être son title) lors du changement de l'image:

// make sure target is valid. It might not be valid 
// if the page has not finished loading 
if (target) 
{ 
    target.src=dimages[nextImage].src; 
    targetlink = document.getElementById("imagelink"); 
    targetlink.href = add-link-here; 
    targetlink.title = "title message"; 
    curImage=nextImage; 
} 

, vous êtes également tester la présence de myImage deux fois. Tout d'abord ici:

if (document.all && document.getElementById("myImage")) 

puis ici:

target=document.getElementById("myImage"); 
… 
if (target)