我发现了一些方法,可以在Firefox和Chrome浏览器中检测窗口支持的当前URI方案。如果应用程序没有注册,我将下载并注册这些应用程序URI。
Chrome
var appWindow = window.open('alert:"Hello%20World"',"_self");
if(appWindow!=null){alert("it is worked")}
火狐浏览器
$("body").append('<span id="__protoProxy"></span>');
function queryWord(aWord)
{
var protoProxy = document.getElementById('__protoProxy');
if (protoProxy)
{
var word = aWord.replace('"','\"');
protoProxy.innerHTML = '<div style="display:none;"><iframe id="iframe01" src="alert://'+ word + '"></iframe></div>';
}
}
queryWord('hello world');
if(document.getElementById('iframe01').contentDocument.body.innerHTML!=""){alert("it is worked")}
IE
但是在IE中,即使URI未在Windows注册,我也无法执行此操作,IE会打开窗口以选择来自Windows商店的应用程序。
有没有办法在IE中检测?
有没有一种通用的方法可以在所有浏览器中检测它?
Citrix启动器在所有浏览器中是如何工作的?