1. 程式人生 > >不跳轉頁面下載檔案

不跳轉頁面下載檔案

最先網上答案討論比較多的是這一種:

**通過iframe下載

/**

* content 下載的url

*/

function download2(content) {

try{
  $(".iframe_down").remove().end();
  var urlFile=content;
  var elemIF = document.createElement("iframe");
  elemIF.src = urlFile;
  elemIF.style.display = "none";
  document.body.appendChild(elemIF);
}
  catch(e){
}

}

缺點:下載不穩定,偶爾會下載兩次,尚未查出原因

 

/*優化*/

通過嘗試,找到了完美的方法:通過表單下載

//頁面html元素

<iframe style="display: none" name="if_down"></iframe>

<form method="post" action="" id="if_down" target="if_down"></form>

/**

* content 下載的url

* id url中需要傳的引數

*/

function download2(content, id) {

  try{

    var $eleForm = $("#if_down");
    $eleForm.attr("action", content);

    //url中需要帶的引數
    var input = $("<input>");

    input.attr("type", "hidden");
    input.attr("name", "id");
    input.attr("value", id);//引數id

    $eleForm.append(input);


    $eleForm.submit();

  }
    catch(e){
  }

}

完美解決第一個中所帶來的問題,目前沒有發現不相容的瀏覽器,缺點是在這種post表單提交方式中,無法直接在url中帶參,但是可以通過上述程式碼中的input方式將引數帶入。