【问题标题】:onclick of anchor, download document in same window点击锚点,在同一窗口下载文件
【发布时间】:2015-11-27 06:12:07
【问题描述】:

我想提示用户在同一个窗口中保存数据 [它可以是:-图像、pdf、excel 表等]。

我不想使用 HTML5 DOWNLOAD 选项,因为这并非对所有浏览器都有效。

例如:-

我想提示用户下载谷歌标志,如下面的代码。

<a href="https://www.google.co.in/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"> Download Google Logo</a>

但它不会下载谷歌图标,尽管它会重定向到那个链接。

请推荐!!


根据我的要求,target="_blank" 或 iframe 不会解决我的问题。我希望用户只需下载同一页面中的任何文件。

【问题讨论】:

  • 您不能强制用户下载外部链接的内容。
  • 这只是一个例子。实际上,根据我的项目,有一个下载链接的要求。单击该链接后,用户将获得相关内容,例如图像、pdf、excel 等。
  • a) "不想使用 HTML5 DOWNLOAD 选项" , b) "实际上,我的项目要求有一个下载链接" 要求是什么?
  • 根据我的项目,有一个网格允许用户从网站下载内容。桌子上有下载链接------------------------------------------ ---------------------- # |内容 |行动 - - - - - - - - - - - - - - - - - - - - - - - - - --------------- 1 |图片 | 下载 ---------------------------------- -------------------------------------------------- -- 1 | Excel 文件 | 下载 现在它在新页面中打开了。我希望它应该在同一页面下载

标签: javascript jquery html download


【解决方案1】:

尝试将hrefa元素设置为base64data URI的图像,将type设置为"application/octet-stream"target设置为"_self"

&lt;a href="data:application/octet-stream;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAWCAYAAAAvg9c4AAAABHNCSVQICAgIfAhkiAAAACRJREFUOI1j/M/A8J+ByoCJ2gaOGjpq6Kiho4aOGjpq6GA2FAAxTAIqi7SS4AAAAABJRU5ErkJggg==" target="_self"&gt;Download image&lt;/a&gt;

【讨论】:

  • 但是当您运行此代码时,它会下载未知文件,这无法解决我的问题以及我如何编码路径,如您所显示的那样?
  • “但是当你运行这个代码时它会下载未知文件” 如果使用download属性可以在“保存文件”对话框中向用户建议文件名。 “我如何编码你所显示的路径”如果请求的资源有Access-Control-Allow-Origin标头可以使用XMLHttpRequest,请求文件为Blob,或者,下载文件,转换为base64字符串, data URI ,在 a 元素 href 属性中用作字符串
【解决方案2】:

使用 iFrame 方法。

<iframe id="download" hidden><\iframe>

<a href="javascript:document.getElementById('download').src = 'file-path'>whatever<\a>

-编辑-

使用 iframe 方法不会将您带到不同的页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-23
    • 1970-01-01
    • 2015-10-17
    • 2018-11-20
    • 2015-03-21
    相关资源
    最近更新 更多