Я делаю скрипт, чтобы узнать, поддерживает ли мой браузер совместное использование экрана. Мой скрипт работает во всех браузерах (Chrome, Opera, Firefox, Edge, Safari), кроме Internet Explorer, и я не знаю, в чем проблема.
Можете ли вы дать мне ответ, пожалуйста
var getDisplayMedia;
// Screen sharing is supported by the browser
if (navigator.mediaDevices.getDisplayMedia || navigator.getDisplayMedia){
getDisplayMedia = "O";
}else {
getDisplayMedia = "N";
}
console.info(getDisplayMedia);
В Chrome, Opera, Firefox, Edge, Safari он возвращает O или N. но в IE получил эту ошибку: script5007 не удалось получить свойство getDisplayMedia неопределенной или нулевой ссылки
Согласно разделу совместимость с браузером документации MediaDevices, он не поддерживается в IE.
Я предлагаю проверить navigator.userAgent
на indexOf("MSIE")
перед проверкой свойств mediaDevices
.
@BeWeria Я обновил ответ, указав потенциальное обходное решение.
В IE есть мой пользовательский агент: «Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) как Gecko». indexof("MSIE") вернет false
@BeWeria Для IE 11 вам нужно использовать регулярное выражение для соответствия /Trident.*rv\:11\./
. Извините, это немного многословно, но я не сижу за компьютером, чтобы попробовать что-нибудь еще. Реквизиты для этот ответ для сопоставителя
@BeWeria Да, всегда применяйте более простое решение!
Вам нужно проверить, что navigator.mediaDevices
существует, прежде чем проверять одно из его свойств.
var getDisplayMedia;
// Screen sharing is supported by the browser
if (navigator.mediaDevices && navigator.mediaDevices.getDisplayMedia ||
navigator.getDisplayMedia
){
getDisplayMedia = "O";
}else {
getDisplayMedia = "N";
}
console.info(getDisplayMedia);
Да, тогда он должен установить для getDisplayMedia значение «N». но есть script5007, который не может получить свойство getDisplayMedia неопределенной или нулевой ссылки. Значит мой скрипт не работает