Регистратор Javascript работает в первый раз, но ошибка «Запись не поддерживается в этом браузере» после перенаправления страницы - PullRequest
0 голосов
/ 01 ноября 2019

Моя первая публикация на stackoverflow, поэтому заранее извиняюсь за любые ошибки в протоколе.

Я создаю веб-приложение Django, в котором есть страница, позволяющая пользователю записыватьаудиоклип, используя микрофон, затем сохраните этот клип на сервере. Итак, пользовательский поток:

  • На странице со списком прошлых записей нажмите «Новый».
  • Вы попадаете на страницу с некоторыми элементами управления рекордера, где вы нажимаете «Запись». ".
  • Скажите что-нибудь.
  • Нажмите кнопку" Стоп ", чтобы остановить запись и сделать доступной кнопку" Сохранить ".
  • Нажмите кнопку" Сохранить ";появится всплывающее окно с сообщением о том, что сохранение прошло успешно, а затем вы вернетесь на «индексную» страницу со списком записей (с последней записью вверху).

Я использую опус-рекордер Криса Рудмина для обработки записи и написал собственный пользовательский javascript для отправки аудио в виде большого двоичного объекта обратно на сервер в виде XMLHttpRequest.
На сервере есть представление Django, которое обрабатывает POST,и отправляет обратно JSON с информацией об успехе / неудаче.
На клиентской стороне пользователю показывается предупреждение со статусом, а затем страница перенаправляется (используя window.location.href и URL, отправленный в JSON с сервера. ) на страницу указателя.

Вот проблема: Все работает нормально при первой загрузке страницы, включая сохранение записи и перенаправление на страницу указателя. Однако со страницы «указатель», если я теперь нажимаю «Создать», когда я возвращаюсь на страницу записи, она не работает. Консоль показывает мне сообщение

Recording is not supported in this browser

Теперь, если я закомментирую window.location.href, который выполняет перенаправление, вручную введите URL-адрес страницы индекса и затем нажмите «Создать», чтобы перейтиназад все отлично работает. Что-то в этом редиректе все портит, но я не могу понять, что.


ОБНОВЛЕНИЕ

Я пытался заменить window.location. href с

window.location.replace

и

window.location.assign

, но ни один из них не решил проблему.

1 Ответ

0 голосов
/ 02 ноября 2019

Я решил свою проблему, заменив

window.location.href

на

document.getElementById('home-link').click();

Так получилось, что на странице есть ссылка, указывающая на страницу, на которую я хотел программно перейтии «щелчок», по-видимому, решает мою первоначальную проблему (т.е. последующий переход на страницу записи больше не вызывает ошибку «Запись не поддерживается ...»).

...