質問

重複の可能性:
ブラウザのプロトコル ハンドラーを検出するにはどうすればよいですか?

特定のソフトウェア (非ブラウザベース) は、インストール時にカスタム プロトコルをインストールします。したがって、ソフトウェアがシステムにインストールされている場合は、次のようなリンクを配置します。

<a href="mycustomprotocol:///foobar">Launch the program!</a> 

Web ページ内でクリックするとソフトウェアが起動します (もちろん警告を表示した後)。

ソフトウェアがインストールされていない場合は、ブラウザが起動しようとしないように要素を動的に変更したいと考えています。

JavaScriptでプロトコルが有効かどうかを検出する方法はありますか?少なくとも Firefox、IE、Chrome、Safari で動作することを望みます。

ありがとう

役に立ちましたか?

解決

JavaScript がユーザーのデスクトップ ファイル システムやレジストリにアクセスしてカスタム プロトコルを検証する方法はありません。

他のヒント

window.onError イベントまたはサポートされている場合は a.onError イベントでエラーをキャッチしてから、代わりに JavaScript を使用してフォールバック URL に移動することができます。

JavaScript でアクセスできるのは次のとおりです navigator.plugins これにより、どのようなプラグインがインストールされているかがわかります。これの問題は、ブラウザ自体がプロトコルを処理する方法を知らない場合、ブラウザはそのプロトコルを OS に渡して処理することです。また、OS にインストールされているさまざまなプロトコル ハンドラーを JavaScript 経由ですべて見つけることはできません。

つまり、言い換えると次のようになります。いいえ...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top