2016-04-06 14 views
2

Bir flash galeri sitesi hazırlıyorum ve sayfanın altındaki yazıların flashlar için indirme linki olmasını istiyorum. Bu metin, şu anda gösterilmekte olan geçerli flaşın başlığına dönüşür. Href etiketinin, bir kullanıcının indirebileceği şekilde oynatmakta olan belirli bir flaşın dosya yolunu eşleştirmek için dinamik olarak değişmesini isterim. Bu, dinamik olarak bir değişkeni ile değiştirenlere izin veren indirme linkleri ile oynadığım ilk kez. Kısacası, bağlantının, bağlantılar dizisinde bulunan dosya yoluna geçmesini istiyorum.Javascript ile dinamik olarak değişen indirme bağlantısı nasıl yapılır?

dinamik bağlantılar için benim başlangıç ​​kodunu içeren fonksiyon İNDİR

HTML denir

<body> 

    <div id="titleText"> 
     <h1>Anon Curb</h1> 
    </div> 
    <div id="flashmovie"> 
     <object type="application/x-shockwave-flash" data="swfs/welcomeflash.swf">'+ 
      <param name="movie" value="swfs/welcomeflash.swf"> 
     </object> 
    </div> 
    <!-- end #container --> 
    <div id="buttonCon"> 

     <div id="buttons"> 
      <button id="next">next</button> 

      <button id="rand">Random</button> 

      <button id="back">Back</button> 
     </div> 

    </div> 

    <div id="titleCon"> 
     <a href="#" id="downLink"> 
     <div id="title">Hit random button</div> 
     </a> 
    </div> 
    <!-- end #wrapper --> 

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-beta1/jquery.min.js"></script> 
    <script src="js/flashcollection.js"></script> 
</body> 

JAVASCRIPT

$(document).ready(function() { 
    var links = [ 
'swfs/#1%20(Special%20Japanese%20Extended%20Dance%20Mix).swf', 
'swfs/$D6.swf', 
'swfs/(MAD)%20Huh.swf' 
]; 

var displaytext = [ 
'#1 (Special Japanese Extended Dance Mix)', 
'$D6', 
'(MAD) Huh' 
]; 

var c = 0 
    var flashmovie, test, temp; 

    function init() { 
     flashmovie = document.getElementById('flashmovie'); 
     document.getElementById('back').onclick = function() { 
      if (c == 0) { 
       c = links.length; 
      } 
      c-- 
      displayFiles(); 
     } 

     document.getElementById('next').onclick = function() { 
      if (c == links.length - 1) { 
       c = -1; 
      } 
      c++; 
      displayFiles(); 
     } 

     document.getElementById('rand').onclick = function() { 
      temp = c; 
      while (c == temp) { 
       c = Math.floor(Math.random() * links.length); 
      } 
      displayFiles(); 
     } 
    } 

    function displayFiles() { 

     test = links[c].substring(links[c].lastIndexOf('.') + 1, links[c].length); 
     document.getElementById('title').innerHTML = displaytext[c]; 

     flashmovie.innerHTML = 
      '<object type="application/x-shockwave-flash" data="' + links[c] + '">' + 
      '<param name="movie" value="' + links[c] + '">' + 
      '<\/object>'; 
    } 

    function download() { 
     document.getElementById('rand', 'back', 'next').onclick = function() { 
      document.getElementById('downlink').attr("href", links[c]); 
     } 
    } 

    window.addEventListener ? 
     window.addEventListener('load', init, false) : 
     window.attachEvent('onload', init); 
}); 

cevap

1

doğru javascript

Bu Soltani Neji en düzenlenen indirme fonksiyonunu kullanır yanı sıra at İndirme özniteliğini değiştirmek için ag onsuz çalışmaz. normal veya özel benim için gerçi

var c = 0; 
    var flashmovie, test, temp; 

    function init() { 
     flashmovie = document.getElementById('flashmovie'); 
     document.getElementById('back').onclick = function() { 
      if (c == 0) { 
       c = links.length; 
      } 
      c-- 
      displayFiles(); 
      download(); 
     } 

     document.getElementById('next').onclick = function() { 
      if (c == links.length - 1) { 
       c = -1; 
      } 
      c++; 
      displayFiles(); 
      download(); 
     } 

     document.getElementById('rand').onclick = function() { 
      temp = c; 
      while (c == temp) { 
       c = Math.floor(Math.random() * links.length); 
      } 
      displayFiles(); 
      download(); 
     } 

    } 

    function displayFiles() { 

     test = links[c].substring(links[c].lastIndexOf('.') + 1, links[c].length); 
     document.getElementById('title').innerHTML = displaytext[c]; 

     flashmovie.innerHTML = 
      '<object type="application/x-shockwave-flash" data="' + links[c] + '">' + 
      '<param name="movie" value="' + links[c] + '">' + 
      '<\/object>'; 
    } 

    function download() { 
     document.getElementById('downLink').setAttribute('href', links[c]); 
     document.getElementById('downLink').setAttribute('download', displaytext[c]); 
    } 

    window.addEventListener ? 
     window.addEventListener('load', init, false) : 
     window.attachEvent('onload', init); 
}); 
1

Merhaba ben bu sloved ve bu benim için çalıştığını HTML dosyası için, 1. resminin hrefini eklemeniz yeterlidir, çünkü dosya her zaman başladığında 1. olanı yükler. o etikete atfedilmiştir eklemek indir, böylece, böyle gibi bu gibi indirme fonksiyonunu düzenlemek ve daha sonra her buton click olayı demen gerekiyor javascript için

<div id="titleCon"> 

    <a href="unknittingmouse1.swf" id="downLink" download=""> 
    <div id="title">Hit random button</div> 
    </a> 
</div> 

gibi bu olacak:

yardımcı olur :)
$(document).ready(function() { 
    var links = [ 
'swfs/#1%20(Special%20Japanese%20Extended%20Dance%20Mix).swf', 
'swfs/$D6.swf', 
'swfs/(MAD)%20Huh.swf' 
]; 

var displaytext = [ 
'#1 (Special Japanese Extended Dance Mix)', 
'$D6', 
'(MAD) Huh' 
]; 

var c = 0 
    var flashmovie, test, temp; 

    function init() { 
     flashmovie = document.getElementById('flashmovie'); 
     document.getElementById('back').onclick = function() { 
      if (c == 0) { 
       c = links.length; 
      } 
      c-- 
      displayFiles(); 
      download(); 
     } 

     document.getElementById('next').onclick = function() { 
      if (c == links.length - 1) { 
       c = -1; 
      } 
      c++; 
      displayFiles(); 
      download(); 
     } 

     document.getElementById('rand').onclick = function() { 
      temp = c; 
      while (c == temp) { 
       c = Math.floor(Math.random() * links.length); 
      } 
      displayFiles(); 
      download(); 
     } 
    } 

    function displayFiles() { 

     test = links[c].substring(links[c].lastIndexOf('.') + 1, links[c].length); 
     document.getElementById('title').innerHTML = displaytext[c]; 

     flashmovie.innerHTML = 
      '<object type="application/x-shockwave-flash" data="' + links[c] + '">' + 
      '<param name="movie" value="' + links[c] + '">' + 
      '<\/object>'; 
    } 

    function download() { 

      document.getElementById('downLink').setAttribute('href', links[c]); 
     } 


    window.addEventListener ? 
     window.addEventListener('load', init, false) : 
     window.attachEvent('onload', init); 
});` 

Umut

+1

Kodumu impliments zaman sadece başlık yapmak gibiydi yanıt kadar uzun sürüyor ama yaklaşık sry Hey flaş dissapear dışındaki düğmeleri şey flaş yaptıktan bilmiyorum Herhangi bir nedenle tam ekran – cosmichero2025

+1

Nvm Ben onu href etiketi ile download özniteliğini eklemek unuttum ve bunu değiştirmek unuttum – cosmichero2025

+0

aşağıdaki html etiketi ekleyerek de aynı konuyu yapacağız, sen olacak adını ile indirebiliyor –

İlgili konular