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