我编写了一个协议处理程序来启动 Cisco Jabber 设备。以下是我的代码。
<input onclick="javascript:window.location.href = 'movi:12345'
type="button" value="Launch" />
如果 Cisco Jabber 安装在客户端机器上,它会启动它。但如果未安装,我想显示警告和下载 URL。怎么可能?
我编写了一个协议处理程序来启动 Cisco Jabber 设备。以下是我的代码。
<input onclick="javascript:window.location.href = 'movi:12345'
type="button" value="Launch" />
如果 Cisco Jabber 安装在客户端机器上,它会启动它。但如果未安装,我想显示警告和下载 URL。怎么可能?
以下 HTML 文件应符合您的目的,请确保更改 jQuery 源文件链接以适合您自己的需要(在 head 标记内):
<html>
<head>
<script type='text/javascript' src='jquery-1.5.1.js'></script>
<script type='text/javascript'>
var protocolCheckerTimer = false;
var installerSites = [];
var currentProtocol = false;
var protocolFound = false;
var poppingUp = false;
$(document).ready(function (e){
$(window).bind('blur', interceptProtocolStartup);
$(document).bind('focusout', interceptProtocolStartup);
installerSites['movi'] = 'https://supportforums.cisco.com/docs/DOC-23292';
installerSites['sip'] = 'http://www.linphone.org/eng/download/packages/';
installerSites['skype'] = 'http://www.skype.com/en/download-skype/skype-for-computer/';
installerSites['glow'] = 'http://www.glowpoint.com';
$('a.protoco_handler').click(function (e) {
var sUrl = $(this).attr('href');
var urlComponents = sUrl.split(':');
currentProtocol = urlComponents[0];
log('checking protocol for ' + currentProtocol);
protocolCheckerTimer = setTimeout(waitForProtocolHandler, 200);
$('#hidIFrame').attr('src', sUrl);
return false;
});
});
function waitForProtocolHandler() {
if (protocolFound === true) {
resetAll();
return;
}
poppingUp = true;
if (confirm('Handler for protocol ' + currentProtocol + ' not found. Would you like to install?')) {
log('opening installer site ' + installerSites[currentProtocol] + ' for protocol ' + currentProtocol);
window.open(installerSites[currentProtocol]);
}
resetAll();
}
function resetAll() {
protocolFound = false;
currentProtocol = false;
if (protocolCheckerTimer !== false) {
clearTimeout(protocolCheckerTimer);
protocolCheckerTimer = false;
}
poppingUp = false;
}
function interceptProtocolStartup() {
if (poppingUp === true) {
return;
}
log('protocol found, clearing timeout');
resetAll();
}
function log(msg) {
if (window.console) {
console.log(msg);
}
}
</script>
</head>
<body>
<ul>
<li><a class='protoco_handler' href='movi:100001@ovcloud.com'>Launch Jabber</a></li>
<li><a class='protoco_handler' href='sip:azam@ovcloud.com'>Launch Cisco</a></li>
<li><a class='protoco_handler' href='skype:mdaliazam'>Launch Skype</a></li>
<li><a class='protoco_handler' href='glow:azam@ovcloud.com'>Launch Glowpoint :)</a> </li>
</ul>
<iframe id='hidIFrame' style='display:none'></iframe>
</body>
</html>