繁体   English   中英

在javascript中更改默认图片扩展名

[英]Change Default image extension in javascript

我的网站上有一个页面,显示图像。 当我右键单击图像并单击“我Save Image As为默认名称”时。 我想右键单击更改图像名称并保存。

例如:
在我的HTML代码中,
image src="abc.jpeg"

右键单击时,我希望将此图像另存为def.jpg

有没有办法做到这一点?

据我所知, 您无法使用JavaScript做到这一点 这只能在服务器端处理。

如果您使用的是PHP,则简单的解决方案是使用header()

// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

您当然可以用一个变量替换download.pdf。

header('Content-Disposition: attachment; filename="' . $fileName .'"');

从PHP文档中:

如果希望提示用户保存要发送的数据(例如生成的PDF文件),则可以使用»Content-Disposition标头提供推荐的文件名,并强制浏览器显示保存对话框。

不要这样做,不是每个浏览器都支持它(某些情况下也可以选择退出contextmenu事件)。 您为什么要这样做?

我想您想链接到缩略图的大版本。 因此,只需在图像标签周围放置一个链接( <a> ),每个人都会很高兴。 当您使用描述性工具提示指示链接时,效果会更好。


编辑:

如果页面中已经包含图像,则无法更改单击[另存为]时用户代理将提供的默认标题。 点,没有异常。

浏览器可能会使用下载路径中的文件名。 您不能动态(通过脚本)更改src属性,因为这将导致另一个文件加载。 您可以做的是在页面中提供已经包含其期望文件名的文件,但是要在服务器上完成。

因此,选项2正在开始下载(新)文件。 Content-Disposition标头中,您可以动态地(在服务器上)为发送的内容提议任何文件名。 要开始下载,只需将图像包装到一个链接中(您甚至可以更改href属性)。 或者,您可能希望构建一个自定义上下文菜单,以将下载链接显示为[另存为]按钮(如何操作将是另一个问题)。

选项#3是在新的标签页/窗口中打开文件,在其上应用document.execCommand("SaveAs", [...]) ,然后再次关闭标签页/窗口。 不幸的是,只有Internet Explorer支持此功能。 请参阅execCommand另存为在Firefox中工作吗? 为此和建议。

嗯,有一种方法可以做到这一点..但是我不确定它是否适用于大多数浏览器。 添加oncontextmenu="return false;" 您的身体标签中的属性。 它将禁用上下文菜单(希望?!)!

而且,如果您想要自定义上下文菜单,则只需少量的CSS和脚本即可完成。 为click事件附加事件处理程序,并在发生左或右键单击时执行操作。

你把它放在图片上

<img src=".." onClick="this.src='new URL'">

或者您可以在单独的功能中执行此操作

<img src=".." onClick="change(this)">
//
<script>
function change(img) {
img.src = 'new src';
}
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM