日期:2014-05-16  浏览次数:20365 次

js怎么调用OCX控件啊?
js怎么调用OCX控件啊,我已经注册了OCX控件,并且也提示注册成功,clsid也是正确的,但是就是方法什么的都调用不了,怎么回事啊,大哥些能帮忙看看么,都搞了两天了,还没点头绪?

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function Play()
{
  alert("Action");
  var Earth = document.getElementById("Earth");
  Earth.WebStartView('login.4006043110.com','8006','53t02','1012050002','S1110230040'); //配置参数,调用函数
  //earth.SetSize(800,600);//设置大小
  alert("显示!");

</script>

</head>

<body>

<object id= "Earth" classid= "clsid:CE0CB977-24AC-48F2-BAAC-A54AD071A817" codebase= "/Release/earth.ocx" width= "352 " height= "288 " align= "absmiddle "></object>


<br /><br />
<INPUT id="button1" type="button" value="打开" name="button1" onclick="javascript:Play()">

</body>
</html>

------解决方案--------------------
JS调用控件的方式很简单哦:

如果是微软提供的IE浏览器,则可以在VS2008开发工具中建立一个OCX插件,其class-id由开发工具自动帮你生成。只要在JS中使用<object>标签,在该标签中的classid中引入工具生成的classid即可,calssid在工程文件的XXX.idl文件中。其文件的中的“//XXX的类信息”下的uuid即为JS调用控件时的calssid。记得,classid是唯一的;切忌,在调用OCX是,需要对OCX控件进行注册。

如果是FF或者chrome或者safari浏览器时,因为采用的是NPAPI架构的plugin,所以JS调用插件时,不能使用<object>标签,应当使用<embed>标签,该标签中的type属性等号后的"application/XXXXXX"为NPAPI工程中资源文件中所定义的。NPAPI编译后的插件为dll文件,该插件浏览器调用时无需注册。
------解决方案--------------------
建议你
1 下载个oleview软件,查看下ocx里的接口,检查下classid是否有错
2 ocx控件只能在ie调用,且需要将网址加入到安全网址里,在调一下安全级别