RT,最近第二次使用到类似项目,将前台页面代码Mark下.
浏览器自动判断是否符合控件运行环境,判断是否已经安装了控件,并进行下载提示:
// 检测控件运行环境,并进行安装提示
function checkPlugin()
{
var agent = "<%=request.getHeader("user-agent")%>";
//alert(agent);
if(-1 != agent.indexOf("Chrome")){Ext.Msg.alert('控件检测','控件暂不支持Chrome内核<br/>请使用IE浏览器(IE6 或 IE兼容模式)');return;}
if(-1 != agent.indexOf("Safari")){Ext.Msg.alert('控件检测','控件暂不支持Safari内核<br/>请使用IE浏览器(IE6 或 IE兼容模式)');return;}
if(-1 == agent.indexOf("Windows")){Ext.Msg.alert('控件检测','控件暂不支持该设备<br/>请使用IE浏览器(IE6 或 IE兼容模式)'); return;}
if(-1 == agent.indexOf("Mozilla")){Ext.Msg.alert('控件检测','控件暂不支持该设备<br/>请使用IE浏览器(IE6 或 IE兼容模式)'); return;}
//if(-1 == agent.indexOf("compatible")){Ext.Msg.alert('控件检测','请将IE浏览器调至兼容模式'); return;}
//if(-1 != agent.indexOf(".NET4")){Ext.Msg.alert('控件检测','未安装控件运行环境'); return;}
try{var plugIn=new ActiveXObject("敲入ActiveX的PrgID");delete plugIn;}
catch (e){
Ext.Msg.confirm('控件检测','您未安装 XXXXXX控件<br/>是否安装?',function(btn){
if(btn=="yes")
{
window.location.href ='<%=SetupUrl%>';
}})
}
}
Ext内调用ActiveX控件
var chartwin = new Ext.Window({
title: 'ActiveX控件',
width: 860,
height:520,
minWidth: 860,
maximizable: true,
minHeight: 520,
layout: 'fit',
plain:true,
modal:true,
bodyStyle:'padding:0px;',
buttonAlign:'center',
//closeAction: 'hide' 情况下无法删除ActiveX控件,导致再次打开页面是控件调用异常,改为 closeAction: 'close',
closeAction: 'close',
html:"<object align=\"center\" id=\"PluginObject\" classid=\"clsid:XXX-XXXXX-XX-XX-XXXXXXXXXXX\"></object>"
});
http://www.cnblogs.com/souso/archive/2010/01/12/1645715.html
http://www.cnblogs.com/zhangs1986/archive/2013/01/18/2866734.html
http://www.cr173.com/html/20985_1.html
CAB包情况下自动更新:
http://www.cnblogs.com/fsjohnhuang/p/3823478.html