Не делайте этого, не каждый браузер поддерживает его (в некоторых случаях также возможен отказ в событиях контекстного меню). Зачем вам это делать?
Я думаю, вы хотите установить ссылку на большие версии ваших миниатюр. Поэтому просто поместите ссылку (<a>
) вокруг ваших тегов изображений, и все будут счастливы. Когда вы укажете ссылку с описательной всплывающей подсказкой, это будет еще лучше.
EDIT:
Если у вас есть изображения, уже включенные в странице, вы не можете изменить название по умолчанию агент пользователя будет предлагать при нажатии кнопки [Сохранить как]. Точка, никаких исключений.
Браузер, скорее всего, будет использовать имя файла из пути загрузки. Динамик src нельзя изменять динамически (по сценарию), потому что это приведет к загрузке другого файла. Что вы можете сделать, так это доставить страницу с файлами, уже находящимися под их именами желаемого файла, но это нужно сделать на сервере.
Так что опция №2 запускает (новый) файл. В заголовке Content-Disposition
вы можете динамически (на сервере) предлагать любое имя файла для отправленного контента.Для начала загрузки просто добавьте изображение в ссылку (из которой вы даже можете изменить атрибут href). Или вы можете создать настраиваемое контекстное меню, чтобы отобразить ссылку для загрузки в качестве кнопки [Сохранить как] (как это сделать, это вопрос другого вопроса).
Вариант № 3 заключается в том, чтобы открыть файл в новой вкладке/окне, применить на нем document.execCommand("SaveAs", [...])
и снова закрыть вкладку/окно. К сожалению, это поддерживается только в Internet Explorer; см. Does execCommand SaveAs work in Firefox? за это и предложения.
Конечно, но зачем вы хотите это делать? – Bergi