В моем приложении мне нужно разрешить пользователю щелкнуть правой кнопкой мыши изображение, чтобы сохранить изображение на диск , Тем не менее, я заметил, что с моим конкретным кодом Google Chrome является единственным браузером, который не позволяет пользователю «Сохранить изображение как ..», если пользователь сначала не выбирает Open image in new tab
, а затем, оттуда, выберите Save image as..
.«Сохранить изображение как ..» не работает в Google Chrome при использовании window.open() и document.write()
Поскольку все другие основные браузеры (в том числе Mobile Chrome) работают должным образом, я не уверен, что я не реализую свой код стандартным/правильным способом или проблема с Chrome.
Пример:
Следующий HTML урезанная версия того, что я делаю. Это позволит вам нажать кнопку, чтобы открыть новое окно, которое будет содержать изображение.
Чтобы проверить/подтвердить проблему, описанную выше, щелкните изображение правой кнопкой мыши и выберите Save image as..
- Вы должны заметить, что ничего не происходит. Однако, если вы щелкните правой кнопкой мыши изображение и выберите Open image in new tab
, вы сможете Save image as..
оттуда.
<html>
<head>
<title></title>
<script>
function foo() {
var tab = window.open();
tab.document.write('<p>Right-click, then click "Save image as ..."</p><img src="http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png" />');
}
</script>
</head>
<body>
<button onclick="foo();">Open</button>
</body>
</html>
Является ли это проблемой с Chrome или есть другой способ, который я могу использовать window.open()
вместе с document.write()
, чтобы получить Chrome работать, как и другие браузеры (т.е. без необходимости, во-первых, выбрать Open image in new tab
.
Мне пришлось установить 'window.location. href = "#" ', тогда это сработало для меня. Я использую TypeScri пт. – goflo