У меня есть следующий код JavaScript
var aimg = new Image();
aimg.crossOrigin = 'Anonymous';
aimg.onload = function () {
//execute some code when image loaded
};
aimg.onerror = function () {
//execute some code when image failed to load
};
aimg.src = someExistedImageUrl;
работает на Chrome, Firefox на десктопе Linux и устройствах Android, onload
запускается правильно. Но в прошивке, onerror
всегда срабатывают Eventhough изображения существует, и исходя из тех же происхождения.
Почему приведенный выше код не смог загрузить изображение в iOS?
Обновить
Я добавляю следующий код, как предложено, но не работает. Изображение относительно небольшого размера, менее 80 КБ.
aimg.src = null;
Может быть, это проблема с кешем. Попробуйте это и посмотрите, работает ли он или нет;
var aimg = new Image();
aimg.crossOrigin = 'Anonymous';
aimg.onload = function () {
//execute some code when image loaded
};
aimg.onerror = function () {
//execute some code when image failed to load
};
aimg.src = null;
aimg.src = someExistedImageUrl;
Кроме того, проверьте размер изображения.
Выделение JavaScript также ограничено 10 МБ. Safari вызывает исключение, если вы превышаете это ограничение на общее выделение памяти для JavaScript.
Для получения дополнительной информации, вы можете проверить этот вопрос
Поместите тег на кнопку, вы можете сделать это программно или в инспекторе атрибутов, тег по умолчанию равен 0, а затем вы должны сделать сравнение в функции.
@IBAction func onNextButtonTap (_ sender: Any)
{
let button = sender as! UIButton let index = button.tag switch index {
case 1 :
let vc1 = firstViewcontroller.getInstance ()
self.navigationController?.pushViewController (vc1, animated: true)
break
case 2 :
let vc2 = firstViewcontroller.getInstance ()
self.navigationController?.pushViewController (vc2, animated: true)
break
default :
print ("Otherwise, do something else.")
}
}
onerror
не всегда срабатывает. Открытие URL изображения вручную в адресной строке браузера приводит к успешной загрузке изображения.