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


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

    代码
    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; 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; 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;" onclick="">关闭</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)。

    代码
    <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;0px;border:0px"></iframe></div>
    </form>
    <script language="javascript" src="autoInstall.js"></script>
    </body>

    3. 预览效果,呵呵

    4. 可以调整的地方。

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

    代码
    <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>

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

  • 相关阅读:
    第五届蓝桥杯JavaB组省赛真题
    第五届蓝桥杯JavaB组省赛真题
    第五届蓝桥杯JavaA组省赛真题
    第五届蓝桥杯JavaA组省赛真题
    第五届蓝桥杯JavaA组省赛真题
    第五届蓝桥杯JavaA组省赛真题
    FastReport的交叉表实际使用的一个例子
    成熟的人首先得明白自己是个什么样的人
    ACL 我为什么要发明一个轮子?
    利润就是被存储的,接到指令就可以被使用的劳动时间
  • 原文地址:https://www.cnblogs.com/xiaokang088/p/1812050.html
Copyright © 2020-2023  润新知