Проверка Javascript AudioContext не работает в Internet Explorer 11
У меня есть это JS
код, где я проверяю, если AudioContext
определяется, затем установите его, иначе верните undefined
:
function audioContextCheck() {
if (typeof AudioContext !== "undefined") {
return new AudioContext();
} else if (typeof webkitAudioContext !== "undefined") {
return new webkitAudioContext();
} else if (typeof mozAudioContext !== "undefined") {
return new mozAudioContext();
} else {
// return undefined
return "undefined"
}
}
var audioContext = audioContextCheck();
console.log(audioContext)
function audioRecording( e ) {
try{
console.log('audioContext is '+ audioContext)
if (audioContext != "undefined") {
audioContext.resume().then(() => {
console.log('Resumed audioContext on end-recording');
e.classList.remove('recording');
recording = false;
});
}
else {
console.log('IE audioContext not supported')
e.classList.remove('recording');
recording = false;
socketio.emit('end-recording');
}
}
catch(error){
console.log(error)
console.log('Resumed audioContext on end-recording');
e.classList.remove('recording');
recording = false;
}
}
}
Теперь это JS
файл загружен из html
стр. Но в Internet Explorer 11
всякий раз, когда я загружаю эту страницу, я вижу syntax error
на линии audioContext.resume().then(() => {
, Я знаю IE не поддерживает AudioContext
и именно поэтому я использую audioContextCheck()
куда я вернусь undefined
если AudioContext
не поддерживается, а затем в audioRecording()
Я проверяю, если это возможно audioContext
не равно undefined
затем только выполнить код под ним. Таким образом, для IE
он не должен выполнять этот код, но все равно выдает синтаксическую ошибку в строке.
Также у меня есть console.log()
Заявление в моем коде, но я не вижу ничего на консоли в IE 11
(в инструментах разработчика).
В чем заключается ошибка, которую я здесь делаю, и что было бы более элегантным способом убедиться, что IE не переходит к строке с ошибкой и, следовательно, не выдает ошибку?