如何点击图片打开另存为..dialog?

时间:2010-11-23 06:18:56

标签: javascript jquery html

这是代码。

点击链接后,应该打开另存为对话框

<a href="http://www.experts-exchange.com/xp/images/newNavLogo.png" target="_new">
<img src="http://www.experts-exchange.com/xp/images/newNavLogo.png" align="left" alt="" />
</a>

我们如何使用jQuery或javaScript来实现这个目标?

6 个答案:

答案 0 :(得分:2)

如果您使用的是PHP或任何其他平台,则可以始终使用强制下载技术。

这可能会有所帮助:

<?php 
$file = 'tag_cloud.gif';
if(!file){
  // File doesn't exist, output error
  die('file not found');
}else{
  // Set headers
  header("Cache-Control: public");
  header("Content-Description: File Transfer");
  header("Content-Disposition: attachment; filename=$file");
  header("Content-Type: image/gif");
  header("Content-Transfer-Encoding: binary");
  // Read the file from disk
  readfile($file);
}
?>

在图像的点击事件中将上述脚本称为ajax。

干杯

答案 1 :(得分:1)

jDownload怎么样?

示例用法显示在主页上。

编辑:该链接现已关闭,现在可能有更好的插件。

尝试http://jqueryfiledownload.apphb.com/

答案 2 :(得分:0)

不幸的是,它仅适用于IE,但不适用于Firefox。

</head>
<script>

 function saveImageAs (imgOrURL) {
    if (typeof imgOrURL == 'object')
      imgOrURL = imgOrURL.src;
    window.win = open (imgOrURL);
    setTimeout('win.document.execCommand("SaveAs")', 500);
  }
</script>
<body>

  <A HREF="javascript: void 0"
     ONCLICK="saveImageAs(document.anImage); return false"
  >save image</A>
  <IMG NAME="anImage" SRC="../apache_pb2.gif">
</body>

答案 3 :(得分:0)

Click to save


$("#img").click(function() {
 document.execCommand('SaveAs','1','give img location here');
});

如果不起作用,请使用此jquery插件进行跨浏览器功能“跨浏览器设计模式”

http://plugins.jquery.com/project/designMode

答案 4 :(得分:-1)

function dl(obj){
   window.location = obj.src;
}

<br/>
..........

<br/>

<img src="http://www.experts-exchange.com/xp/images/newNavLogo.png" align="left" alt="" onClick="dl(this);"/>
<br/>
如果进行了下载重定向,

较新的浏览器将粘贴到旧页面。

答案 5 :(得分:-1)

试试这个

HTML:

<img src="http://www.experts-exchange.com/xp/images/newNavLogo.png" align="left" alt="" />

脚本:

$('img').each(function(){
  $(this).wrap('<a href="'+this.src+'?download=true" target="_blank"/>');
});

最重要的是你需要在服务器端指定这个,以便在添加了?downlaod = true时发送带有处置附件的文件