自动安装silverlight,类似flash自动安装

 

1. 准备js。参考了一个js弹出层的例子。最后自动输出exe,类似flash安装。ie可以自动安装,其他浏览器需要手动下载安装包。

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
1 var isOK = Silverlight.isInstalled( " 4.0.50524.0 " );
2   if ( ! isOK) {
3 var msgw, msgh, bordercolor;
4 msgw = 450 ; // 提示窗口的宽度
5   msgh = 150 ; // 提示窗口的高度
6   titleheight = 25 // 提示窗口标题高度
7   bordercolor = " #336699 " ; // 提示窗口的边框颜色
8 titlecolor = " #99CCFF " ; // 提示窗口的标题颜色
9
10 var sWidth, sHeight;
11 sWidth = document.body.offsetWidth; // 浏览器工作区域内页面宽度
12 sHeight = screen.height; // 屏幕高度(垂直分辨率)
13
14
15 // 背景层(大小与窗口有效区域相同,即当弹出对话框时,背景显示为放射状透明灰色)
16 var bgObj = document.createElement( " div " ); // 创建一个div对象(背景层)
17 // 定义div属性,即相当于
18 // <div id="bgDiv" style="position:absolute; top:0; background-color:#777; filter:progid:DXImagesTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75); opacity:0.6; left:0; width:918px; height:768px; z-index:10000;"></div>
19 bgObj.setAttribute( ' id ' , ' bgDiv ' );
20 bgObj.style.position = " absolute " ;
21 bgObj.style.top = " 0 " ;
22 bgObj.style.background = " #777 " ;
23 bgObj.style.filter = " progid:DXImageTransform.Microsoft.Alpha(style=2,opacity=25,finishOpacity=75 " ;
24 bgObj.style.opacity = " 0.6 " ;
25 bgObj.style.left = " 0 " ;
26 bgObj.style.width = sWidth + " px " ;
27 bgObj.style.height = sHeight * 2 + " px " ;
28 bgObj.style.zIndex = " 10000 " ;
29 document.body.appendChild(bgObj); // 在body内添加该div对象
30
31
32 var msgObj = document.createElement( " div " ) // 创建一个div对象(提示框层)
33 // 定义div属性,即相当于
34 // <div id="msgDiv" align="center" style="background-color:white; border:1px solid #336699; position:absolute; left:50%; top:50%; font:12px/1.6em Verdana,Geneva,Arial,Helvetica,sans-serif; margin-left:-225px; margin-top:npx; width:400px; height:100px; text-align:center; line-height:25px; z-index:100001;"></div>
35 msgObj.setAttribute( " id " , " msgDiv " );
36 msgObj.setAttribute( " align " , " center " );
37 msgObj.style.background = " white " ;
38 msgObj.style.border = " 1px solid " + bordercolor;
39 msgObj.style.position = " absolute " ;
40 msgObj.style.left = " 50% " ;
41 msgObj.style.top = " 20% " ;
42 msgObj.style.font = " 12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif " ;
43 msgObj.style.marginLeft = " -225px " ;
44 msgObj.style.marginTop = - 75 + document.documentElement.scrollTop + " px " ;
45 msgObj.style.width = msgw + " px " ;
46 msgObj.style.height = msgh + " px " ;
47 msgObj.style.padding = " 0px " ;
48 msgObj.style.textAlign = " center " ;
49 msgObj.style.lineHeight = " 25px " ;
50 msgObj.style.zIndex = " 10001 " ;
51
52 var title = document.createElement( " h4 " ); // 创建一个h4对象(提示框标题栏)
53
54 // 定义h4的属性,即相当于
55 // <h4 id="msgTitle" align="right" style="margin:0; padding:3px; background-color:#336699; filter:progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100); opacity:0.75; border:1px solid #336699; height:18px; font:12px Verdana,Geneva,Arial,Helvetica,sans-serif; color:white; cursor:pointer;" οnclick="">关闭</h4>
56 title.setAttribute( " id " , " msgTitle " );
57 title.setAttribute( " align " , " right " );
58 title.style.margin = " 0 " ;
59 title.style.padding = " 3px " ;
60 title.style.background = bordercolor;
61
62 title.style.filter = " progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100); " ;
63 title.style.opacity = " 0.75 " ;
64 title.style.border = " 1px solid " + bordercolor;
65 title.style.height = " 18px " ;
66
67 title.style.font = " 12px Verdana, Geneva, Arial, Helvetica, sans-serif " ;
68
69 title.style.color = " white " ;
70 title.style.cursor = " pointer " ;
71 title.innerHTML = " 关闭 " ;
72
73
74 function removeObj() { // 点击标题栏触发的事件
75 document.body.removeChild(bgObj); // 删除背景层Div
76 document.getElementById( " msgDiv " ).removeChild(title); // 删除提示框的标题栏
77 document.body.removeChild(msgObj); // 删除提示框层
78 }
79 title.onclick = removeObj;
80
81
82 document.body.appendChild(msgObj); // 在body内添加提示框div对象msgObj
83 document.getElementById( " msgDiv " ).appendChild(title); // 在提示框div中添加标题栏对象title
84
85 var dv = document.createElement( " div " );
86 dv.setAttribute( " id " , " slInstall " );
87 dv.setAttribute( " style " , " font-family:Arial; font-size:14px; " );
88 dv.innerHTML = " <br />安装Microsoft Silverlight后,才能正常浏览该页面。<br /><span id=\ " msgSpan\ " >系统正在下载或者安装此程序。或者 <a href=\ " \ " id=\ " downLink\ " >点击此处</a> 手动安装。</span><br />安装完成后请重新启动浏览器。 " ;
89 document.getElementById( " msgDiv " ).appendChild(dv); // 在提示框div中添加提示信息对象txt
90
91 // 输出exe
92 var downHost = " 改为你的地址 例如http://192.168.23.22:8008/download/ " ;
93 var osInfo = window.navigator.userAgent;
94 var exeName = "" ;
95 if (osInfo.indexOf( " Windows NT " ) >= 0 ) exeName = " Silverlight4forwindows.exe " ;
96 else if (osInfo.indexOf( " PPC Mac OS X " ) >= 0 ) exeName = " Silverlight4formac.dmg " ;
97 else if (osInfo.indexOf( " Intel Mac OS X " ) >= 0 ) exeName = " Silverlight4formac.dmg " ;
98 document.getElementById( " downLink " ).href = downHost + exeName;
99
100
101 /* 判断浏览器 */
102 if (osInfo.indexOf( " MSIE " ) == - 1 ) {
103 document.getElementById( " msgSpan " ).innerHTML = " 您的浏览器不支持自动安装Silverlight,请 <a href=\ " \ " style=\ " text - decoration:underline\ " id=\ " downLink\ " >点击此处</a> 手动安装。 " ;
104
105 }
106 else {
107 // 输出exe安装包
108 run_exe = " <OBJECT ID=\ " RUNIT\ " WIDTH=0 HEIGHT=0 TYPE=\ " application / x-oleobject\""
109 run_exe += " CODEBASE=\ " { 0 }\ " > "
110 run_exe += " </OBJECT> "
111 run_exe = run_exe.replace( " {0} " , downHost + exeName);
112 document.open();
113 document.clear();
114 document.writeln(run_exe);
115 document.close();
116 }
117
118 }
119
120
121

 

2. 在html里面调用该js,将silverlightfor window的安装文件和silverlightformac的安装文件放到根目录,命名为js中写的名字(Silverlight4forwindows.exe,Silverlight4formac.dmg)。

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
< body >
< form id ="form1" runat ="server" style ="height:100%" >
< div id ="silverlightControlHost" >
< object data ="data:application/x-silverlight-2," type ="application/x-silverlight-2" width ="100%" height ="100%" >
< param name ="source" value ="ClientBin/AutoInstallSilverlight.xap" />
< param name ="onError" value ="onSilverlightError" />
< param name ="background" value ="white" />
< param name ="minRuntimeVersion" value ="4.0.50401.0" />
< param name ="autoUpgrade" value ="true" />
< a href ="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style ="text-decoration:none" >
< img src ="http://go.microsoft.com/fwlink/?LinkId=161376" alt ="获取 Microsoft Silverlight" style ="border-style:none" />
</ a >
</ object >< iframe id ="_sl_historyFrame" style ="visibility:hidden;height:0px;width:0px;border:0px" ></ iframe ></ div >
</ form >
< script language ="javascript" src ="autoInstall.js" ></ script >
</ body >

3. 预览效果,呵呵

2010082920392297.png

4. 可以调整的地方。

删除 这一句,就可以去掉微软的安装提示。

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
< a href ="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style ="text-decoration:none" >
< img src ="http://go.microsoft.com/fwlink/?LinkId=161376" alt ="获取 Microsoft Silverlight" style ="border-style:none" />
</ a >

源码:http://files.cnblogs.com/xiaokang088/AutoInstallSilverlightWebSite.rar 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值