blog icon indicating copy to clipboard operation
blog copied to clipboard

下载 导出 download

Open yongheng2016 opened this issue 2 years ago • 0 comments

  • 弹窗另存为
      Content-Disposition: inline  // 默认值,表示回复中的消息体会以页面的一部分或者整个页面的形式展示
      Content-Disposition: attachment  // 意味着消息体应该被下载到本地;大多数浏览器会呈现一个“保存为”的对话框,将 filename 的值预填为下载后的文件名,假如它存在的话
      Content-Disposition: attachment; filename="filename.jpg"
    
  • 当前页面直接下载
export function download(url) {
  const iframe = document.createElement("iframe");
  iframe.style.display = "none";

  function iframeLoad() {
    const win = iframe.contentWindow;
    const doc = win.document;
    if (win.location.href === url) {
      if (doc.body.childNodes.length > 0) {
        // response is error
      }
      iframe.parentNode.removeChild(iframe);
    }
  }

  if ("onload" in iframe) {
    iframe.onload = iframeLoad;
  } else if (iframe.attachEvent) {
    iframe.attachEvent("onload", iframeLoad);
  } else {
    iframe.onreadystatechange = function onreadystatechange() {
      if (iframe.readyState === "complete") {
        iframeLoad();
      }
    };
  }
  iframe.src = "";
  document.body.appendChild(iframe);

  setTimeout(function loadUrl() {
    iframe.contentWindow.location.href = url;
  }, 50);
}

yongheng2016 avatar Jul 13 '22 02:07 yongheng2016