Мне нужно проверить, действителен ли URL-адрес изображения, что означает, что изображение корректно загружается в браузере.
Я пробовал использовать это:
const src = "https://i.imgur.com/vXPYhT5.jpeg"
const img = new Image()
img.onload = () => console.log("valid image :)")
img.onerror = () => console.log("invalid image :(")
img.crossOrigin = "anonymous"
img.src = src
Проблема заключается в том, что приведенный выше код выводит "invalid image :("
в некоторых мобильных браузерах, например Safari, даже когда изображение допустимо.
Чтобы быть более понятным: приведенный выше код не является кросс-браузерным решением для этой проблемы.
Пример пользовательского агента, эта проблема произошла:
{
"userAgentInfo": {
"browserName": "Safari",
"browserVersion": "13.0.5",
"engineName": "AppleWebKit",
"engineVersion": "605.1.15",
"isBot": false,
"isMobile": true,
"os": "CPU iPhone OS 13_3_1 like Mac OS X",
"platform": "iPhone"
}
}
PS1: The В изображении включены все виды CORS.
PS2: я не вижу ошибку, потому что это просто уведомление от трекера ошибок, например Airbrake.nofity("Invalid image")
на img.onerror
.