почему событие loadstart тега не запускается? Есть ли альтернатива?

#javascript #html #vue.js #vuejs2

#javascript #HTML #vue.js #vuejs2

Вопрос:

Я использую vuejs с пользовательским интерфейсом элемента, я хочу показывать индикатор загрузки при запуске загрузки изображения из src attr, скрывать индикатор загрузки при load запуске события (загруженного img).

load Событие работает хорошо, но loadstart никогда не срабатывает.

Вот фрагмент:

 <div v-loading="imgLoading">
  <img
    :src="imgOfSelectedColor"
    @loadstart="showImgLoading"
    @load="hideImgLoading"
    @error="hideImgLoading"
    @abort="hideImgLoading"
  >
</div>
  
 export default {
  data() {
    return {
      imgLoading: false
    };
  },
  methods: {
    showImgLoading() {
      this.imgLoading = true;
    },
    hideImgLoading() {
      this.imgLoading = false;
    }
  }
}
  

Комментарии:

1. loadstart применяется только к тегам видео и аудио, это недопустимое событие для тегов img. Смотрите Раздел поддерживаемые теги w3schools.com/jsref/event_onloadstart.asp

2. @AlexanderStaroselsky Есть ли альтернатива для img?

3. @AlexanderStaroselsky это неправда. ProgressEvents применяются к множеству API, они даже изначально были реализованы для объектов XHR. И HTMLImageElement должен запустить loadstart событие как 11-й шаг алгоритма обновления данных изображения . Теперь только Firefox среди распространенных браузеров реализовал эту часть спецификаций, так что, ifeng , в каком браузере вы это тестировали?

4. @Kaiido Chrome 73.0.3683.103 x64 .

5. Будет сложно (если не невозможно) правильно заполнить это. Я думаю, лучше всего сделать свой голос таким, чтобы этот 4-летний отчет об ошибке, наконец, был обработан .