2017-02-13 55 views
0

我正在使用Ruby on Rails創建一個項目的Web頁面,該項目將運行用戶選擇的腳本,並將使用JavaScript在頁面底部構建元素以顯示結果。每個結果元素由一個包含結果的Bootstrap可摺疊展示區域組成。我在每個演示文稿塊的底部實施了一個下載鏈接,該鏈接僅將所有文本保存爲要下載的.txt文件。我正在使用JavaScript blob來實現此目的,但遇到了問題。我需要有無限數量的鏈接來保存要下載的數據,但每次創建新鏈接時,都會停止下載。我曾嘗試將blob鏈接保存到數組中,並從中返回結果鏈接,但無濟於事。即構建斑點的功能如下:靜態Rails web UI上的多個獨立blob鏈接

var textFile = null, 
makeTextFile = function(text){ 
    data = new Blob([text], {type: 'text/plain'}); 

    if(textFile !== null) { window.URL.revokeObjectURL(textFile); } 
    textFile = window.URL.createObjectURL(data); 
    return textFile; 
}; 

我可以使用Ruby on Rails的「由send_file」處理的下載,但是這需要該網頁重新加載,這將失去所有的其他結果。是構建結果的要素的代碼如下:

if(document.getElementById("dig").checked == true) 
{ 
    $('#dig_wait_img').addClass('hidden'); 
    $('#dig_loading_img').removeClass('hidden'); 
    results = $.ajax({ 
    type:"POST", 
    url: "/console/discovery/dig", 
    data: { domain_name : domainInput }, 
    success: function(data) { 
     resultArr.push(data["value"]); 
     $('#dig_loading_img').addClass('hidden'); 
     $('#dig_check_img').removeClass('hidden'); 
     $("#results") 
     .append(
     $("<div class=\"panel panel-default\">") 
     .append(
      $("<h4 class=\"panel-title\">") 
      .append(
      $("<a data-toggle=\"collapse\" href=\"#collapse" + count + "\">DIG - " + domainInput + "</a>") 
     ) 
     ) 
     .append(
      $("</h4>") 
     ) 
     .append(
      $("</div>") 
     ) 
     .append(
      $("<div id=\"collapse" + count + "\" class=\"panel-collapse collapse\">") 
      .append(
      $("<pre><div class=\"panel-body\" id=\"body" + count + "\">" + data["value"] + "</div><a id=\"" + count + "\" href=\"" + makeTextFile(data["value"]) + "\" download=\"" + data["file"] + "\">Download</a><div class=\"panel-footer\"></div></pre>") 
     ) 
     ) 
     .append(
      $("</div>") 
     ) 
     .append(
      $("</div>") 
     ) 
    ); 
     count++; 
    }, 
    error: function(data) 
    { 
     $('#dig_loading_img').addClass('hidden'); 
     $('#dig_x_img').removeClass('hidden'); 
    }, 
    }); 
} 

如果任何人有處理與斑點靜態Web頁面上進行多個下載鏈接的經驗,或者如果你只是在一般任何建議,任何幫助將不勝感激。在此先感謝

回答

0

哦,厭倦的樂趣...後退一步,也許這不是我如何接近問題,但我認爲是必需的。實際的問題並不在於我如何存儲blob鏈接,而是textFile變量沒有被重置爲null,並且我檢查該文件是否爲空,並且如果是,則撤消該鏈接。刪除makeTextFile函數中的if語句解決了問題!