Кто-нибудь получил свойство javascript msProtocols для работы в IE10? - PullRequest
2 голосов
/ 19 марта 2012

Мое веб-приложение должно определить, установлено ли наше настольное приложение на ПК пользователя.(Это приложение запускается из веб-приложения по специальному протоколу приложения.) В настоящее время у нас работает метод «взлома», но он не работает в IE10.Проведя некоторое исследование, я натолкнулся на эту статью.

Понимание протоколов

В нижней части объясняется, как в Windows 8 и IE10 теперь можно обнаруживать определенныеобработчик протокола приложения, использующий JavaScript.Более подробную информацию можно найти на этом сайте: msProtocols свойство .Согласно примеру, я должен быть в состоянии сделать что-то вроде этого:

if (navigator.msProtocols["myProtocol"]) {
    location.href = "myProtocol://<Some path under the myProtocol protocol>";
} else {
    // Fallback code for when the "myProtocol" protocol doesn’t exist.
}

Я пытался заставить это работать, но не получилось.Даже с использованием отладчика и просмотра объекта навигатора нет свойства msProtocols.

Кто-нибудь смог заставить это работать?

1 Ответ

1 голос
/ 06 июня 2012

Каждый раз, когда вы что-то тестируете с помощью Internet Explorer 8+, убедитесь, что ваш режим браузера и режим документа установлены в соответствующие состояния. Например, если режим браузера меньше, чем Internet Explorer 10, а режим документа, отличный от стандартов, не позволит вам получить доступ к члену msProtocols.

Проверьте эти настройки, нажав F12, чтобы открыть Инструменты разработчика. В целом, если вы используете этот член или нет, документация гласит:

Этот элемент не поддерживается и не должен использоваться. Определяет, имеет ли указанный протокол связанный обработчик протокола.

Если вы успешно используете этот член или нет, я бы избежал его и нашел бы альтернативу.

...