急需帮忙,网页activex,js调用方法时,提示错误“对象不支持此属性或方法”
13 个解决方案
这个可能性很多,js方法是否正确,变量是否对...
这是我写的js,大家给看看
<html>
<head>
</head>
<body>
<input id="here"/>
<input type="button" value='获取控件返回值' onclick="javascript:ss()"/>
<object id="it" name="it" classid="4EB5E6FF-69D2-4720-9C54-FD33E96B0E51"></object>
<script type="text/javascript" language="javascriipt">
function ss()
{
document.getElementById("here").value=1;
var a = it.test1();
}
</script>
</body>
</html>
还有,我是用ATL做的dll项目,怎么转成ocx文件。是不是js只能调用ocx文件啊。
var a = document.getElementById("it").test1();
这个我也试过了,还是报错“对象不支持此属性或方法”
我详细说下我做的步骤,请大家看看有什么问题。
1.创建一个ATL项目
2.添加一个ATL简单对象类zz
3.在Izz接口类添加一个方法test1(包含一个输出参数outdata)
interface Izz : IDispatch{
[id(2), helpstring("方法test1")] HRESULT test1([out,retval] SHORT* outdata);
};
4.在zz.cpp中实现这个方法test1
STDMETHODIMP Czz::test1(SHORT* outdata)
{
// TODO: 在此添加实现代码
outdata=(short*)32767;
return S_OK;
}
5.选择regsvr32。编译
6.写了上述的js代码访问,结果报错了。
换VBS试试,这个确实挺烦人的,我们作的时候都是JS和VBS混合着用,有的在JS里能用,在VBS里用不了,有的在VBS里能用,在JS里不能用。
我用vbscript写的也报错 "对象不支持此属性或方法:'it.test()'"
sub write_onclick
dim ee
ee=it.test1()
end sub
我怀疑是我声明方法的时候出错了,麻烦各位高手给看一下
3.在Izz接口类添加一个方法test1(包含一个输出参数outdata)
interface Izz : IDispatch{
[id(2), helpstring("方法test1")] HRESULT test1([out,retval] SHORT* outdata);
};
4.在zz.cpp中实现这个方法test1
STDMETHODIMP Czz::test1(SHORT* outdata)
{
// TODO: 在此添加实现代码
outdata=(short*)32767;
return S_OK;
}