用什么方法可以得到object对象的所有方法

cnw168 2009-12-03 09:45:49
比如一个播放器的object对象。
它的属性有
id
width
height
sytle
url
src
还有很多属性这里略。

它的方法有
1)播放
Play():
2)停止
Stop():
3)暂停
Pause():
等,还有很多,略。

如ID=player

用for (prop in player)方法可以枚举出所有属性,但是得不到象play和stop等方法。

请问有什么办法可以得到所有object的方法呢。我是想将某object的所有方法全部列出。只要得到方法名就行,代码可以不要。
...全文
349 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
草根醉秋意 2009-12-04
  • 打赏
  • 举报
回复
使用脚本调试器,比如vs2008或者是FF,可以看到对象的属性及方法的列表。
擒兽 2009-12-04
  • 打赏
  • 举报
回复
这个因为有了客户端插件,难说如何实现。

如果是用JS封装的对象,可以枚举出来。 具体哪些枚举不出来要看JS虚拟机的设计了。


枚举不出来,我置疑的地方是运行时,谁知道他什么时候附加原型上去~
shenzhenNBA 2009-12-04
  • 打赏
  • 举报
回复
得出指定ID对象的所有 属性 和 方法,LZ 看看。。。。


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JS获取对象的所有属性方法和对应的值</title>
</head>
<style type="text/css">
body,td,div,input,fieldset,legend{font-family:Verdana; font-size:12px; color:#333333; font-weight:normal;}
td{line-height:20px;}
a:link,a:visited{font-family:Verdana; font-size:12px; color:#330099; font-weight:normal; padding:0px 3px; text-decoration:none;}
a:hover,a:active{font-family:Verdana; font-size:12px; color:#FF6600; font-weight:normal; }
span{font-family:Verdana; font-size:12px; color:red; font-weight:normal; display:block; margin:0px 10px;}
.cur01{background-color:#00CCFF; color:#FF3300; font-weight:bold;}
</style>
<script type="text/javascript" language="javascript">
function getXProperty(objID){
var oID=objID
var obj=document.getElementById(oID);
var nv="";
var i=0;
document.getElementById("prolist").innerHTML="<hr size='1' color='red'>";
for(var xitem in obj){ //obj.attributes
i++;
document.getElementById("prolist").innerHTML+=(i<100 ? (i<10 ? '00'+i : '0'+i) : i)+" Name:<b> "+xitem+"</b>";
document.getElementById("prolist").innerHTML+=" -------------------- ";
eval("nv=obj."+xitem+"");
document.getElementById("prolist").innerHTML+="值:<font color=red> "+(nv==null ? '空' : nv )+"</font><br>";
}
}
</script>
<body>
<p>
<a id="link01" name="linkName01" title="link 01" href="http://www.baidu.com">百度 http://www.baidu.com</a>
<input name="btn01" type="button" onClick="javascript:getXProperty('link01');" value="获取 a 对象的所有属性方法">
</p>
<p>
<object id="xMediaPlayer" width="406" height="68" classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6">
<param name="AutoStart" value="1" />
<param name="url" value="http://www.eecosway.com/pub1209363811377.mp3" />
<param name="src" value="http://www.eecosway.com/pub1209363811377.mp3" />
<param name="PlayCount" value="1" />
<param name="EnableContextMenu" value="0" />
<param name="Volume" value="100" />
<embed src="" name="MediaPlayer" type="video/x-ms-wmv" width="406" height="68" autostart="1" showcontrols="1" allowscan="1" playcount="100" enablecontextmenu="0"></embed>
</object>
<input name="btn01" type="button" onClick="javascript:getXProperty('xMediaPlayer');" value="获取 object 对象的所有属性方法">
<br>
created:2009-12-04 <br>
author: shenzhenNBA
</p>
<div id="prolist"></div>
</body>
</html>
moliu 2009-12-04
  • 打赏
  • 举报
回复
谈笑有鸿儒往来无白丁
yixianggao 2009-12-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cnw168 的回复:]
我正是想得到无法通过遍历获取的方法
有没有其它办法可以得到?
[/Quote]
脚本不是万能的,去查相关对象的开发文档!!!
cnw168 2009-12-03
  • 打赏
  • 举报
回复
我正是想得到无法通过遍历获取的方法
有没有其它办法可以得到?
yixianggao 2009-12-03
  • 打赏
  • 举报
回复
成员遍历可用 #1 方法,但仅限可枚举成员,

换言之,有些属性或方法无法通过遍历获取!!!
yuqiangyuqiang 2009-12-03
  • 打赏
  • 举报
回复
不知道书写的这段代码是否对你有用
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<script language="javascript">
var obj={};
obj.name="yuqiang";
obj.fun=test;
function test()
{

}

for(var o in obj)
{
alert(typeof(obj[o])+"============"+o)
}
</script>
</BODY>
</HTML>
其中输出结果是
string=============name
function===========fun
cnw168 2009-12-03
  • 打赏
  • 举报
回复
非常感谢楼上的回答,在这里万分感谢。
不过这样好象也得不到对象的方法。自已写的方法可以得到,但是系统方法就得到了。
我把代码放过来请帮着分析一下,谢谢。

<object classid="clsid:F3D0D36F-23F8-4682-A195-74C92B03D4AF" width="500" height="400" id="QvodPlayer" name="QvodPlayer" onError=if(window.confirm('请您先安装QvodPlayer软件,然后刷新本页才可以正常播放.')){window.open('http://www.qvod.com/download.htm')}else{self.location='http://www.qvod.com/'}>

<PARAM NAME='URL' VALUE='此处请替换成QVOD播放链接地址'>

<PARAM NAME='Autoplay' VALUE='1'>

</object>


方法接口:
1)播放
Play():
2)停止
Stop():
3)暂停
Pause():

它还有好多方法没有公开,我想列出全部方法。
擒兽 2009-12-03
  • 打赏
  • 举报
回复
你可以看看上面代码ClassA实例化与不实例化区别。
擒兽 2009-12-03
  • 打赏
  • 举报
回复

function ClassA(){
this.a = 1;
}

ClassA.prototype = {
func: function(){
alert(this.a);
}
}

for (var item in ClassA.prototype) {
alert(item);
}

for (var item in new ClassA()) {
alert(item);
}


具体要看设计者了,运行时原型附加得看代码才行。
cnw168 2009-12-03
  • 打赏
  • 举报
回复
没有文档啊,有的话就不在这里费劲了。不过还是谢谢你。

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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