[查看演示] 源码如下 ---------------------------------------------------------- <html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>如何判断ACTIVEX控件是否下载-www.51windows.Net</title>
<style>
<!--
body { font-size: 12px }
-->
</style>
</head>
<body>
<p>
大家可以看到在下载ACTIVEX控件时IE通常会弹出一个对话框问是否容许下载并执行该ACTIVEX控件,如果用户点否则控件无法下载,那我后面JS对控件方法的调用肯定会出错,如何避免这个问题呢?是否可以在调用方法之前用JS判断一下呢?请看我下面的讲解?</p>
<p><br>
方法一:<br>
你可以试着调用ActiveX control里的一个方法Method, 如调用不成功,则说明control还没有下载成功.例如:<br>
<script language="javascript"><br>
var bControlLoaded=false;<br>
function window.onload()<br>
{<br>
try<br>
{<br>
if (objectID.someMethod)<br>
bControlLoaded = true;<br>
}<br>
catch (ex)<br>
{}<br>
alert(bControlLoaded);<br>
}<br>
</script><br>
<object id="objectID"></object></p>
<p><br>
</p>
<p> 换句话说,在你调用方法这前,检查bControlLoaded是否返回真.若不是,则报警,也可以转到用户定义的网页显示control没有下载成功.<br>
<script language="javascript"><br>
function window.onload()<br>
{<br>
try<br>
{<br>
if (objectID.someMethod)<br>
bControlLoaded = true;<br>
}<br>
catch (ex)<br>
{<br>
alert("you did not install the control properly!");<br>
window.location.href="someotherpage.html";<br>
}<br>
}<br>
</script></p>
<p><br>
</p>
<p>方法二:<br>
<html XMLNS:CC><br>
<head><br>
<STYLE> <br>
@media all { CC\:clientCaps {behavior:url(#default#clientCaps)}} <br>
</Style><br>
<title>Client Capabilities</title><br>
</head><br>
<body onload="showComponentStatus();" bgcolor="#FFFFFF"><br>
<CC:clientCaps id=clientCaps /><br>
</body></p>
<p><br>
</p>
<p><script language=javascript><br>
function showComponentStatus(){<br>
displayComponent("Address Book", <br>
"{7790769C-0471-11D2-AF11-00C04FA35D02}");<br>
displayComponent("DirectAnimation", </p>
<p><br>
</p>
<p>"{283807B5-2C60-11D0-A31D-00AA00B92C03}");<br>
displayComponent("DirectAnimation Java Classes", </p>
<p><br>
</p>
<p>"{4F216970-C90C-11D1-B5C7-0000F8051515}");<br>
displayComponent("DirectShow", "{44BBA848-CC51-11CF-AAFA-00AA00B6015C}");<br>
displayComponent("Dynamic HTML Data Binding", </p>
<p><br>
</p>
<p>"{9381D8F2-0288-11D0-9501-00AA00B911A5}");<br>
displayComponent("Dynamic HTML Data Binding for Java", </p>
<p><br>
</p>
<p>"{4F216970-C90C-11D1-B5C7-0000F8051515}"); <br>
displayComponent("Internet Connection Wizard", </p>
<p><br>
</p>
<p>"{5A8D6EE0-3E18-11D0-821E-444553540000}");<br>
displayComponent("Internet Explorer 5 Web Browser", </p>
<p><br>
</p>
<p>"{89820200-ECBD-11CF-8B85-00AA005B4383}"); <br>
displayComponent("Internet Explorer Classes for Java", </p>
<p><br>
</p>
<p>"{08B0E5C0-4FCB-11CF-AAA5-00401C608555}"); <br>
displayComponent("Internet Explorer Help", </p>
<p><br>
</p>
<p>"{45EA75A0-A269-11D1-B5BF-0000F8051515}");<br>
displayComponent("Internet Explorer Help Engine", </p>
<p><br>
</p>
<p>"{DE5AED00-A4BF-11D1-9948-00C04F98BBC9}"); <br>
displayComponent("Windows Media Player", </p>
<p><br>
</p>
<p>"{22D6F312-B0F6-11D0-94AB-0080C74C7E95}");<br>
displayComponent("NetMeeting NT", </p>
<p><br>
</p>
<p>"{44BBA842-CC51-11CF-AAFA-00AA00B6015B}");<br>
displayComponent("Offline Browsing Pack", </p>
<p><br>
</p>
<p>"{3AF36230-A269-11D1-B5BF-0000F8051515}");<br>
displayComponent("Outlook Express", </p>
<p><br>
</p>
<p>"{44BBA840-CC51-11CF-AAFA-00AA00B6015C}");<br>
displayComponent("Task Scheduler", </p>
<p><br>
</p>
<p>"{CC2A9BA0-3BDD-11D0-821E-444553540000}");<br>
displayComponent("Microsoft virtual machine", </p>
<p><br>
</p>
<p>"{08B0E5C0-4FCB-11CF-AAA5-00401C608500}");<br>
displayComponent("VRML 2.0 Viewer", </p>
<p><br>
</p>
<p>"{90A7533D-88FE-11D0-9DBE-0000C0411FC3}");<br>
displayComponent("Wallet", <br>
"{1CDEE860-E95B-11CF-B1B0-00AA00BBAD66}");<br>
}</p>
<p><br>
</p>
<p>function displayComponent(compDesc, compID){<br>
if (clientCaps.isComponentInstalled(compID, "componentID")){<br>
alert("Installed.");<br>
}<br>
}<br>
</script><br>
</html></p>
</body>
</html>
<div style="position: absolute; top: 10; right: 10; width: 148; height: 18;cursor:hand">
<input type="button" name="Button" value="查看源代码" onClick= 'window.location = "view-source:" + window.location.href'></div> |