KupueIIIKo,
Скорее всего вы упираетесь в кроссориджин, на сколько я понял toDataURL по соображениям безопасности не дает сделать это с картинками (только то что нарисовано).
есть ещё getImageData, но тогда вы упретесь в кроссориджин.
А так не работает?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input placeholder="Введите урл картинки" />
<script>
window.onload = function () {
document.querySelector('input').addEventListener('input', function () {
var link = document.createElement('a');
link.href = this.value;
link.download = 'yandex.png';
link.click();
}, false);
};
</script>
</body>
</html>