Javascript 对象下的方法编历器出台了 (散分)

hetengfei_ 2011-11-08 08:15:26
为了感谢大家多时对我的提问诲人不倦的解答,
现在终于想出了个 编历器 ,愿大家与分享,如谁能想出更好方法,谢谢提点
[color=#0000FF]-----我首先声明,IE不兼容,在firefox里OK。

[/color]。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test1.aspx.cs" Inherits="holdContent.test1" %>
<!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 runat="server">
<title></title>
<script src="Js/jquery-1.4.2.js" type="text/javascript"></script>
<script src="Js/jquery-1.4.2-vsdoc.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$("#btnTest").click(function(){
var obj = $("#txtObject").val();
var strOut = "对象" + obj + "<hr/>" + strOut;
try{
eval('for (var v in ' + obj + ') {if (' + obj + '[v] == null) {}else if (' + obj + '[v].constructor == window.Function) {strOut += "函数名:" + "<br/>"+ ' + obj + '[v] + "<br/>";}} $("#divShow").html(strOut);');
}
catch(ex)
{

$("#divShow").html("你输入的对象不存在OR 此对象没有可调的方法:<br/>"+ex);
}
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<p>
<font color="#a0a0a0">js 对象编历器:在下面输入JS对象,如 window,window.document,document.body,window.top等,只要对象存在就会编历出,</font>
</p>
请输入JS对象
<br />
<input id="txtObject" type="text" />
<input id="btnTest" type="button" value="取得所有方法" />
<div id="divShow">
</div>
</div>
</form>
</body>
</html>

如果能此方法加以应用,定可以写出很多好东西。
...全文
3472 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
flashtong 2011-11-23
  • 打赏
  • 举报
回复
楼主可以去看看 mootools ,会得到更多的启发。
hetengfei_ 2011-11-23
  • 打赏
  • 举报
回复
[Quote=引用 46 楼 flashtong 的回复:]
楼主可以去看看 mootools ,会得到更多的启发。
[/Quote]
谢谢了
CaiKanXP 2011-11-17
  • 打赏
  • 举报
回复
有兴趣者看看这里吧。

Standard ECMA-262
ECMAScript Language Specification


汉化版嘛,自己搜索
hetengfei_ 2011-11-16
  • 打赏
  • 举报
回复
不过 还会断续关注回复。
hetengfei_ 2011-11-16
  • 打赏
  • 举报
回复
---------------引用 41 楼 cfantwt 的回复:]------------------------------
纯粹为了接分。。。
---------------------------------------------------------------------------

sorry
贴子已结了,没法给分了。
cfantwt 2011-11-16
  • 打赏
  • 举报
回复
纯粹为了接分。。。
hetengfei_ 2011-11-14
  • 打赏
  • 举报
回复
---------------------- 39 楼 liang200801 的回复:----------------------------
实用不?
-------------------------------------------------------------------------------


现在,当然不是很实用,
但 你是知道的。
这些功能是代码写的,
非常好移接。
当然 可以直接 加到项目中。 你说能不实用吗?
liang200801 2011-11-14
  • 打赏
  • 举报
回复
实用不?
hetengfei_ 2011-11-12
  • 打赏
  • 举报
回复
支招,支招!!
如何快捷 学会JScript and DOM
并且 可以 随心所意的玩转它?
请求高手指个方向。
赵王爷 2011-11-12
  • 打赏
  • 举报
回复
什么玩意?怒马~~
  • 打赏
  • 举报
回复
不太喜欢依赖别的框架写的东东...当然,个人看法
hetengfei_ 2011-11-11
  • 打赏
  • 举报
回复
问一个疑点:

我们编历函数时,
得到:
function hasChildNodes() {
[native code]
}

为什么只能看到 [native code]
而看不到他里面的代码?
Mr-Jee 2011-11-11
  • 打赏
  • 举报
回复
1、从头到尾讨论的对象都是dom对象
2、native code是原生代码,基本上浏览器不会暴露
3、ecmascript的一个特点就是函数的参数不是固定的,你遍历?咋遍历?
4、楼主应该是玩C#和asp.net的。所以可能会对反射有兴趣,但是每个语言有每个语言的特点。何必强求呢

最后嘛,http://www.baidu.com/s?wd=javascript+%B1%E9%C0%FA%BA%AF%CA%FD+site%3Atopic.csdn.net&rsv_bp=0&rsv_spt=3&inputT=22870
pamtry 2011-11-11
  • 打赏
  • 举报
回复
mark一下,改天来看
bustersword 2011-11-11
  • 打赏
  • 举报
回复
$("#btnTest").click(function(){

var obj = window,
arr = document.getElementById("txtObject").value.split('.'),
strOut = "对象" + arr.join() + "<hr/>";
for (var i = 0, j = arr.length; i < j; i++){
obj = obj[arr[i]];
}

try {
for (var v in obj) {
try {
if (obj[v] && obj[v].constructor == window.Function) {
strOut += "函数名:" + "<br />" + obj[v].toString() + "<br />";
}
} catch(_e){
continue;
}
}
document.getElementById("divShow").innerHTML = strOut;
}
catch (ex) {
$("#divShow").html("你输入的对象不存在OR 此对象没有可调的方法:<br/>" + ex);
}
});
这里如果输入window.document这样的,结果只是遍历出document的方法...
for (var i = 0, j = arr.length; i < j; i++){
obj = obj[arr[i]];
}这里的花括号应该挪到下面的for循环后面
不过我也学习了,哈哈
hetengfei_ 2011-11-11
  • 打赏
  • 举报
回复
难道想策底搞明白JScript 的原理 就要这么难吗?
  • 打赏
  • 举报
回复
mwl268 2011-11-10
  • 打赏
  • 举报
回复
等结论中
hetengfei_ 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 ifandui 的回复:]

引用 18 楼 hetengfei_ 的回复:
现在惟一的遗憾就是 没有办法得到函数的参数个数,与及对应的类型了。
这个问题,我以前提过,直到现在都没有搞明白。

JS是弱类型 函数的参数就是arguments对象
function a(){
alert(arguments[0]);
alert(arguments[1]);
alert(arguments[2]……
[/Quote]
你的意思是不是想:
要我找出我要调用的函数。
在函数体内用正则表达试来找 x = arguments[*]
然后想法子把 x* 搞出来?
之后作为用户输入时参数 参考。

此法几大难点啊,
其一: 我不知怎样找到一个函数体 定义的代码
其二:正则表达式那块的过滤 我不太懂。----正则 是找 参数个数与及它对应的类型了。

路过高手,不要跳过,帮帮忙。
街头小贩 2011-11-10
  • 打赏
  • 举报
回复
加载更多回复(22)

87,992

社区成员

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

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