iOS / iPad - предотвращение неисполнения JavaScript-выполнения - audio.play () - PullRequest
0 голосов
/ 10 февраля 2019

Re: https://xradio.us/start/time-place-pronounce.html

Это проблема только для iOS / iPad.Требуемое поведение onClick - воспроизвести короткий аудиоклип (произношение), а затем открыть окно на странице Википедии.

Это работает в Windows / Android, но iOS делает обратное: открывает страницу Википедии и затем ПОСЛЕ Википедии.закрывается, воспроизводится аудиофайл.

Click Place Name or Button

Я пытался setTimeout() отложить открытие страницы Википедии, но это ухудшило ситуацию, вызвав блокировку всплывающих окон.Попытка <AUDIO onended="window.open(wikiURL)" etc.> также только что активировала блокировку всплывающих окон.ПРИМЕЧАНИЕ: только последние две строки кода JS должны иметь отношение к этому вопросу.

<script>
    var mobile = "";
    if(window.innerWidth<1000) mobile = navigator.language.substr(0,2) + ".m.";

function go(wikiPlace) { 
    var x = wikiPlace.split('_(')[0];
    var myEle = document.getElementById(""+x+"");

    if(myEle) { myEle.volume = 0.6; myEle.play(); } 
    window.open('https://'+mobile+'wikipedia.org/wiki/'+wikiPlace);
}
</script>

<audio preload="none" id="Nevada" SRC="audio/xr-Nevada.mp3"></audio>  
<audio preload="none" id="Oregon" SRC="audio/xr-Oregon.mp3"></audio>
<audio preload="none" id="Tijuana_Municipality" SRC="audio/xr-Tijuana.mp3"></audio>

<div class="xbtn" onclick="go('Nevada')">NV</div>
<div class="xbtn" onclick="go('Oregon')">OR</div>
<nobr   id="tjP2" onclick="go('Tijuana_Municipality')">Tijuana<sup>mx</sup></nobr>

Правильное поведение: Воспроизвести звук перед отображением .Windows и Android делают это.iOS нет.

Ожидается воспроизведение аудиофайла, а затем откроется страница Википедии.Вместо этого браузер iOS открывает страницу Википедии и ожидает ее закрытия, а затем воспроизводит аудиофайл.

...