JavaScript: ¿cómo detectar si el esquema de URL personalizado está disponible o no?

En el sistema operativo Windows tengo un esquema de URI personalizado, que se usa desde

IE, Firefox, Opera, Safari, Google Chrome

para iniciar el cliente SSH VPN enrutador Juniper (como Cisco). Básicamente funciona de la siguiente manera si está instalado el Cliente SSH, desde la página web se puede iniciar el Cliente VPN SSH.

<a href="juniper:open"> VPN SSH Client </a>

Problema:

a veces el usuario no instaló la aplicación de cliente SSH del router Juniper desde la caja de CD / DVD, por lo tanto, juniper: open no hace nada.

Entonces, en ese caso, necesito detectar el clima o no el esquema de URL está disponible.

Por lo tanto, probé el método Javascript pero no funciona exactamente. porque el enebro: abierto en realidad no es un enlace web.

¿Cómo lo detecto, por favor?

<script>
// Fails
function test1(){
  window.location = 'juniper:open';
  setTimeout(function(){
    if(confirm('Missing. Download it now?')){
      document.location = 'https://www.junper-affiliate.com/setup.zip';
    }
  }, 25);

  //document.location = 'juniper:open';
}

// Fails
function test2(h){
  document.location=h;
  var time = (new Date()).getTime();
  setTimeout(function(){
   var now = (new Date()).getTime();
   if((now-time)<400) {
    if(confirm('Missing. Download it now?')){
     document.location = 'https://www.junper-affiliate.com/setup.zip';
    } else {
     document.location=h;
    }
   }
  }, 300);
 }
</script>

Entonces:

<a onclick="test1()">TEST 1</a>
<a href="juniper:open" onclick="test2(this.href);return false;">TEST 2</a>

Respuestas a la pregunta(2)

Su respuesta a la pregunta