急需帮忙,网页activex,js调用方法时,提示错误“对象不支持此属性或方法”

VISITOR_MYWY 2008-12-11 12:13:19
急需帮忙,网页activex,js调用方法时,提示错误“对象不支持此属性或方法”
...全文
1582 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
netghost2007 2012-07-13
  • 打赏
  • 举报
回复
怎么搞定的?
wangxiao100200 2010-11-17
  • 打赏
  • 举报
回复
咋搞定的呀?
给出来解决方法吧
VISITOR_MYWY 2008-12-12
  • 打赏
  • 举报
回复
搞定,结贴。
VISITOR_MYWY 2008-12-11
  • 打赏
  • 举报
回复
还有,我是用ATL做的dll项目,怎么转成ocx文件。是不是js只能调用ocx文件啊。
VISITOR_MYWY 2008-12-11
  • 打赏
  • 举报
回复
这是我写的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>
zsdhust 2008-12-11
  • 打赏
  • 举报
回复
看调用的函数是否正确啊。可能函数名写错了
oyljerry 2008-12-11
  • 打赏
  • 举报
回复
这个可能性很多,js方法是否正确,变量是否对...
VISITOR_MYWY 2008-12-11
  • 打赏
  • 举报
回复
我怀疑是我声明方法的时候出错了,麻烦各位高手给看一下
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;
}
VISITOR_MYWY 2008-12-11
  • 打赏
  • 举报
回复
我用vbscript写的也报错 "对象不支持此属性或方法:'it.test()'"
sub write_onclick
dim ee
ee=it.test1()
end sub
cofanz 2008-12-11
  • 打赏
  • 举报
回复
换VBS试试,这个确实挺烦人的,我们作的时候都是JS和VBS混合着用,有的在JS里能用,在VBS里用不了,有的在VBS里能用,在JS里不能用。
VISITOR_MYWY 2008-12-11
  • 打赏
  • 举报
回复
我详细说下我做的步骤,请大家看看有什么问题。
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代码访问,结果报错了。
VISITOR_MYWY 2008-12-11
  • 打赏
  • 举报
回复
var a = document.getElementById("it").test1();
这个我也试过了,还是报错“对象不支持此属性或方法”
Tinary3v0 2008-12-11
  • 打赏
  • 举报
回复
楼主用错了一个地方的代码:
看我的代码:
<object id="AVT1" classid = "CLSID:B84B3851-7ACD-4C7D-A2FA-77001D710A30" 
codebase="avt.cab#version=1,0,0,0" style="width: 50px; height: 65px" ></object>

<script language = "JavaScript">
function Eb_onclick() {
document.getElementById("AVT1").SetEnabled( -1 );
}
function Gt_onclick() {
document.getElementById("AVT1").SetEnabled( 0 );
}
</script>


如果这样的话,楼主的应该改成:
function ss() 
{
document.getElementById("here").value=1;
var a = document.getElementById("it").test1();
}

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧