2016-04-06 11 views
2

Я делаю сайт флеш-галереи, и мне бы хотелось, чтобы текст внизу страницы был ссылкой для загрузки флеш-памяти. Этот текст изменяется на заголовок текущей вспышки, которая в настоящее время отображается. Я бы хотел, чтобы тэг href динамически менялся, чтобы соответствовать пути к файлу определенной вспышки, которая воспроизводится, чтобы пользователь мог ее загрузить. Это первый раз, когда я когда-либо играл с ссылками на скачивание, не говоря уже о тех, которые динамически меняются с переменной. Короче говоря, мне хотелось бы, чтобы ссылка изменилась на путь к файлу, который присутствует в массиве ссылок.Как сделать динамически меняющуюся ссылку для загрузки с javascript?

Функция, которая содержит мой стартовый код для динамических ссылок называется СКАЧАТЬ

HTML

<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); 
}); 

ответ

1

правильный Javascript

Это использует отредактированный функцию загрузки Soltani Неджи, а также на ag изменить атрибут загрузки dosen't без него. Не знаю, если это нормально или особенный для меня, хотя

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

Привет там я sloved, что и это работает для меня Для файла HTML вам просто нужно добавить href 1-го изображения, потому что файл всегда загружает 1-й, когда он запускается, и вам также нужно t о добавьте attribut загрузку в теге, так что это будет как

<div id="titleCon"> 

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

Для 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(); 
      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); 
});` 

Надежда, что помогает :)

+1

Эй СРЮ о так долго, чтобы ответить, но когда я impliments моего кода это только казалось, сделать заголовок, кнопки ничего, кроме вспышки пропадает делает вспышку полный экран по какой-то причине – cosmichero2025

+1

Nvm Я понял, что забыл включить атрибут загрузки с тегом href и забыл изменить его. Я опубликую правильный javascript ниже. – cosmichero2025

+0

. Добавление тега html также будет делать то же самое, вы будете возможность загрузить его с его именем –

Смежные вопросы