2012-03-19 6 views
2

私のWebアプリケーションは、デスクトップアプリケーションがユーザーのPCにインストールされているかどうかを検出する必要があります。 (このアプリケーションは、カスタムアプリケーションプロトコルを介してWebアプリケーションから起動されます)。現在、「ハックイン」メソッドが動作していますが、IE10では壊れています。いくつかの研究をして、私はこの記事を読んだ。底部に向かって誰かがIE10で動作するjavascript msProtocolsプロパティを取得しましたか?

Understanding Protocols

は、それがWindows 8のIE10 &に、あなたが今、JavaScriptを使用して、特定のアプリケーションプロトコルハンドラを検出する方法について説明します。詳細はmsProtocols propertyでご覧いただけます。例によれば、私はこのような何かを行うことができるはず。私はこの作業を取得しようとしましたが、失敗しました

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プロパティはありません。

誰でもこれを動作させることができましたか?

+2

私自身の問題を解明しました。私がチェックした最初のものの1つだったはずですが、ブラウザモードとドキュメントモードが正しく設定されていませんでした。 IE10 - Standardsに設定すると、すべてが美しく機能しました! –

答えて

1

Internet Explorer 8以降で何かをテストする場合はいつでも、ブラウザモードとドキュメントモードが適切な状態に設定されていることを確認してください。たとえば、ブラウザモードがInternet Explorer 10より小さく、標準以外のドキュメントモードを使用すると、msProtocolsのメンバーにアクセスできなくなります。

これらの設定を確認するには、F12キーを押して開発者ツールを表示します。あなたがこのメンバーを使用するかどうかの大きな画像では、the documentation状態:

このメンバーがサポートされていないため、使用すべきではありません。指定されたプロトコルに関連付けられたプロトコルハンドラがあるかどうかを判定します。

このメンバーの使用に成功したかどうかにかかわらず、私はそれを避けて代替案を探します。

関連する問題