要问 Javascript 一二

hetengfei_ 2011-10-28 06:57:49
1。
JavaScript 的事件 好click;dblclick ;等等,我们需要手动click 元素才会响应,
有没有办法用程序触发它呢?
2。
如何编历一个对象下的所有方法(知道它需要的参个数和类型),属性,子对象,呢?--当要分开。

JScript code

var str; for(var method in document) { str += document[method] } alert(str);

上面的代码虽然 看到方法,但不见参数,
求 编历方法+参数;
求 编历子对象:
求 编历所有属性:

...全文
424 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
wquanchao 2011-11-03
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 hetengfei_ 的回复:]
引用 12 楼 a87345293 的回复:
楼主的问题感觉是要做一个javascript的编辑器吧?

你说的非常正确!
我不止想做‘编辑器’
而是不断完善上面的功能,实现象 visual studio 一个样 手动拖‘按钮’“redio ”等等。
进入 html 页,变代码。
双击它 自动生成 Jquery 写的事件

直接上网找样式套用!直看运行效果。

现在遇到了难题……
[/Quote]
支持
hetengfei_ 2011-10-30
  • 打赏
  • 举报
回复
浏览器的拖动事件 遮挡 了,
浏览器 本来就有 拖动事件:
比如:图片拖动就会在新窗口中打开!
hetengfei_ 2011-10-30
  • 打赏
  • 举报
回复
-------- 一编只能这样长的了 ----------------接上--------------------

childNodes = [object NodeList]
/*
//---aObject[aName].constructor---
[object Text]*/

firstChild = [object Text]
/*
//---aObject[aName].constructor---
[object Text]*/

lastChild = [object Text]
/*
//---aObject[aName].constructor---
[object Text]*/

previousSibling = [object Text]
//null

nextSibling = null/*
//---aObject[aName].constructor---
function Object() {
[native code]
}*/

attributes = [object NamedNodeMap]
/*
//---aObject[aName].constructor---
[object HTMLDocument]*/

ownerDocument = [object HTMLDocument]
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

namespaceURI = http://www.w3.org/1999/xhtml
//null

prefix = null/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

localName = body
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

baseURI = http://localhost:3194/py.htm
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

textContent =














//函数
setUserData = function setUserData() {
[native code]
}
//函数
getUserData = function getUserData() {
[native code]
}
//函数
insertBefore = function insertBefore() {
[native code]
}
//函数
replaceChild = function replaceChild() {
[native code]
}
//函数
removeChild = function removeChild() {
[native code]
}
//函数
appendChild = function appendChild() {
[native code]
}
//函数
hasChildNodes = function hasChildNodes() {
[native code]
}
//函数
cloneNode = function cloneNode() {
[native code]
}
//函数
normalize = function normalize() {
[native code]
}
//函数
isSupported = function isSupported() {
[native code]
}
//函数
hasAttributes = function hasAttributes() {
[native code]
}
//函数
compareDocumentPosition = function compareDocumentPosition() {
[native code]
}
//函数
isSameNode = function isSameNode() {
[native code]
}
//函数
lookupPrefix = function lookupPrefix() {
[native code]
}
//函数
isDefaultNamespace = function isDefaultNamespace() {
[native code]
}
//函数
lookupNamespaceURI = function lookupNamespaceURI() {
[native code]
}
//函数
isEqualNode = function isEqualNode() {
[native code]
}
//函数
getAttributeNode = function getAttributeNode() {
[native code]
}
//函数
setAttributeNode = function setAttributeNode() {
[native code]
}
//函数
removeAttributeNode = function removeAttributeNode() {
[native code]
}
//函数
getAttributeNodeNS = function getAttributeNodeNS() {
[native code]
}
//函数
setAttributeNodeNS = function setAttributeNodeNS() {
[native code]
}
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

aLink =
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

background =
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

bgColor =
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

link =
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

text =
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

vLink =
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

ELEMENT_NODE = 1
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

ATTRIBUTE_NODE = 2
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

TEXT_NODE = 3
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

CDATA_SECTION_NODE = 4
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

ENTITY_REFERENCE_NODE = 5
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

ENTITY_NODE = 6
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

PROCESSING_INSTRUCTION_NODE = 7
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

COMMENT_NODE = 8
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

DOCUMENT_NODE = 9
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

DOCUMENT_TYPE_NODE = 10
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

DOCUMENT_FRAGMENT_NODE = 11
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

NOTATION_NODE = 12
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

DOCUMENT_POSITION_DISCONNECTED = 1
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

DOCUMENT_POSITION_PRECEDING = 2
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

DOCUMENT_POSITION_FOLLOWING = 4
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

DOCUMENT_POSITION_CONTAINS = 8
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

DOCUMENT_POSITION_CONTAINED_BY = 16
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32
/*
//---aObject[aName].constructor---
function Boolean() {
[native code]
}*/

hidden = false
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

tabIndex = -1
/*
//---aObject[aName].constructor---
function Boolean() {
[native code]
}*/

draggable = false
/*
//---aObject[aName].constructor---
function Boolean() {
[native code]
}*/

spellcheck = false
/*
//---aObject[aName].constructor---
function Object() {
[native code]
}*/

dataset = [object DOMStringMap]
hetengfei_ 2011-10-30
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 wllllll 的回复:]

JScript code

var aObject = window
for (var aName in aObject){
if ( aObject[aName] == null ) {
document.write(aName + " = null<br>");
}else if ( aObject[aName].constructor == window.……
[/Quote]
这就是你的方法改写板
$("#btnPara").click(function() {
var aObject = window.document.body;
var strOut = null;
for (var aName in aObject) {
if (aObject[aName] == null) {
strOut +="//null"+"\n\n"+ aName + " = null";
}
else if (aObject[aName].constructor == window.Function) {
strOut +="//函数"+"\n"+ aName + " = " + aObject[aName] + "\n";
}
else {
strOut +="/*\n//---aObject[aName].constructor---\n"+aObject[aName].constructor+"*/\n\n" +aName + " = " + aObject[aName] + "\n";
}
}
$("#txtOut").val(strOut);
});



我用你的方法搜出一大堆东西,
不知怎么看,谢谢了!

null//函数
querySelector = function querySelector() {
[native code]
}
//函数
querySelectorAll = function querySelectorAll() {
[native code]
}
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

scrollTop = 0
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

scrollLeft = 0
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

scrollHeight = 341
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

scrollWidth = 1008
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

clientTop = 0
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

clientLeft = 0
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

clientHeight = 341
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

clientWidth = 1008
/*
//---aObject[aName].constructor---
[object HTMLTextAreaElement]*/

firstElementChild = [object HTMLTextAreaElement]
/*
//---aObject[aName].constructor---
[object HTMLBRElement]*/

lastElementChild = [object HTMLBRElement]
/*
//---aObject[aName].constructor---
[object HTMLHeadElement]*/

previousElementSibling = [object HTMLHeadElement]
//null

nextElementSibling = null/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

childElementCount = 11
/*
//---aObject[aName].constructor---
function Object() {
[native code]
}*/

children = [object HTMLCollection]
/*
//---aObject[aName].constructor---
function Object() {
[native code]
}*/

classList =
//函数
setCapture = function setCapture() {
[native code]
}
//函数
getElementsByClassName = function getElementsByClassName() {
[native code]
}
//函数
getClientRects = function getClientRects() {
[native code]
}
//函数
getBoundingClientRect = function getBoundingClientRect() {
[native code]
}
//函数
releaseCapture = function releaseCapture() {
[native code]
}
//函数
mozMatchesSelector = function mozMatchesSelector() {
[native code]
}
//函数
addEventListener = function addEventListener() {
[native code]
}
//函数
removeEventListener = function removeEventListener() {
[native code]
}
//函数
dispatchEvent = function dispatchEvent() {
[native code]
}
/*
//---aObject[aName].constructor---
function Object() {
[native code]
}*/

style = [object CSSStyleDeclaration]
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

contentEditable = inherit
/*
//---aObject[aName].constructor---
function Boolean() {
[native code]
}*/

isContentEditable = false
//null

offsetParent = null/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

innerHTML =
<textarea id="txtCode" rows="10" cols="100"></textarea>
<br>
<input id="btnRun" value="运行" type="button">
<input id="btnhtmlEncode" value="htmlEncode" type="button">
<input id="btnhtmlDecode" value="htmlDecode" type="button">
<input id="btntest" value="试试" type="button">
<input id="btnstart" value="开始" onclick="start();" type="button">
<input id="btnPara" value="老家伙" onclick="start();" type="button">
<br>
<textarea id="txtOut" rows="5" cols="100"></textarea>
<br>



/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

offsetLeft = 0
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

offsetTop = 0
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

offsetHeight = 341
/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

offsetWidth = 1008
//函数
scrollIntoView = function scrollIntoView() {
[native code]
}
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

id =
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

title =
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

lang =
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

dir =
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

className =
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

accessKey =
//函数
blur = function blur() {
[native code]
}
//函数
focus = function focus() {
[native code]
}
//函数
click = function click() {
[native code]
}
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

tagName = BODY
//函数
removeAttributeNS = function removeAttributeNS() {
[native code]
}
//函数
removeAttribute = function removeAttribute() {
[native code]
}
//函数
getAttribute = function getAttribute() {
[native code]
}
//函数
getElementsByTagName = function getElementsByTagName() {
[native code]
}
//函数
setAttribute = function setAttribute() {
[native code]
}
//函数
getElementsByTagNameNS = function getElementsByTagNameNS() {
[native code]
}
//函数
hasAttributeNS = function hasAttributeNS() {
[native code]
}
//函数
setAttributeNS = function setAttributeNS() {
[native code]
}
//函数
hasAttribute = function hasAttribute() {
[native code]
}
//函数
getAttributeNS = function getAttributeNS() {
[native code]
}
/*
//---aObject[aName].constructor---
function String() {
[native code]
}*/

nodeName = BODY
//null

nodeValue = null/*
//---aObject[aName].constructor---
function Number() {
[native code]
}*/

nodeType = 1
/*
//---aObject[aName].constructor---
[object HTMLHtmlElement]*/

parentNode = [object HTMLHtmlElement]
/*
//---aObject[aName].constructor---
function Object() {
[native code]
}*/

-------- 一编只能这样长的了 ----------------接下--------------------
Mr-Jee 2011-10-29
  • 打赏
  • 举报
回复
function(para1,para2,para3,para4,para5,para6,para7,para8,para9)
你function(para1)照样可以调用。
laxxx6 2011-10-29
  • 打赏
  • 举报
回复
我想问一下,我的这段拖动div的代码什么地方有问题啊,在ie里面正常,在ff下就是停下再拖就不行了,但如果在div中加入文本就可以了,为什么会这样啊?请各位高手指教.

<html>

<head>
<script language="JavaScript" type="text/javascript" src="jquery-1.6.4.js"></script>
<style>

</style>
</head>
<body>

<div id="rect" style="width:200px;height:200px;position:absolute;background-color:pink;">

</div>

<div id="display" style="position:absolute;top:300px;"></div>
</body>
</html>

<script>

$(init);

function init(){
rectEvent();
}

function rectEvent(){
var slider = $("#rect");
var downFlag = false;

var offX;

slider.mousedown(function(e){
downFlag = true;
var event = getEvent(e);
offX = getOffsetX(event);

});

slider.mouseup(function(){
downFlag = false;
});

slider.mouseout(function(){
downFlag = false;
});

slider.mousemove(function(e){
var event = getEvent(e);

if(!downFlag){
return false;
}

var left = event.clientX - offX;
$("#display").text(left);
slider.css("left",left);
});

}


function getEvent(event){
var event = event ? event : window.event;
return event;
}

function getOffsetX(event){
var off_X = event.offsetX ? event.offsetX : event.layerX;
return off_X;
}

</script>

如果我在rect div随便加入文本如:11,这样就可以了,我一直不太明白为什么会这样?
wllllll 2011-10-29
  • 打赏
  • 举报
回复

var aObject = window
for (var aName in aObject){
if ( aObject[aName] == null ) {
document.write(aName + " = null<br>");
}else if ( aObject[aName].constructor == window.Function ) {
document.write(aName + " = " + aObject[aName] + "<br>");
}else{
document.write(aName + " = " + aObject[aName] + "<br>");
}
}


非IE中,顶级var是无法被for in便例到的,但是FF可以,顶级的var实际就等于window.xx
而非IE浏览器中,部分对象for in是会发生错误的,并且部分对象aObject[aName]也会发生错误
部分非IE浏览器中获得的字符也会有非常规字符,导致获取的东西出现问题……
hetengfei_ 2011-10-29
  • 打赏
  • 举报
回复
有个错字
尽可以少写代码,做用鼠标;
=====》
尽可以少写代码,多用鼠标;
hetengfei_ 2011-10-29
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 qq283868910 的回复:]

纯js 做高级编辑器。。。。
[/Quote]
不完全是,
主要是
快速页面布局!
支持控件拖动
自动套用 常用的Css 样式;
尽可以少写代码,做用鼠标;
用字典格式数据,和AJAX 方式发到后台;--前台后台分离!
  • 打赏
  • 举报
回复
纯js 做高级编辑器 ? 好像 不可以吧 ,有些功能 js 无法适应
plzzz 2011-10-29
  • 打赏
  • 举报
回复
自已看下 YUI3 的 event-simulate.js
hetengfei_ 2011-10-29
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 a87345293 的回复:]

js里面参数都是泛型,没有类型
楼主的问题好像用纯js无法解决吧?
[/Quote]
请问 阁下 有什么好的建议或思路?
不防说说,给我们一个参考
hetengfei_ 2011-10-29
  • 打赏
  • 举报
回复
如 document.getElementById() 方法要一个参数 ,类型是String
明悟 2011-10-29
  • 打赏
  • 举报
回复
js里面参数都是泛型,没有类型
楼主的问题好像用纯js无法解决吧?
hetengfei_ 2011-10-29
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 dayinanddayout 的回复:]
执行下下面一段代码,看是不是你想要的结果
[/Quote]
下面我的分析,不对请指出来,谢谢了!

13 楼 的方法,我看了一下,好象是C# 的 函数参数重载,

能对输入的参数 来决定调用哪个函数。非常好用,可以作为万能函数调用器。

但是我实在想不到如何用 这个方法 来取得 指定函数(是我编历选出来的)
实际需要参数的个数,与之对应的类型。

谢谢继续解答。--关注中.
hetengfei_ 2011-10-29
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 a87345293 的回复:]
楼主的问题感觉是要做一个javascript的编辑器吧?
[/Quote]
你说的非常正确!
我不止想做‘编辑器’
而是不断完善上面的功能,实现象 visual studio 一个样 手动拖‘按钮’“redio ”等等。
进入 html 页,变代码。
双击它 自动生成 Jquery 写的事件

直接上网找样式套用!直看运行效果。

现在遇到了难题了,

请你帮帮我吧,太谢谢了!
dayInAndDayOut 2011-10-29
  • 打赏
  • 举报
回复
执行下下面一段代码,看是不是你想要的结果
function ArgTest(a, b){
var i, s = "The ArgTest function expected ";
var numargs = arguments.length; // 获取被传递参数的数值(即 实参个数)。
var expargs = ArgTest.length; // 获取期望参数的数值(即 形参个数)。
if (expargs < 2)
s += expargs + " argument. ";
else
s += expargs + " arguments. ";
if (numargs < 2)
s += numargs + " was passed.";
else
s += numargs + " were passed.";
s += "\n\n"
for (i =0 ; i < numargs; i++){ // 获取参数内容。
s += " Arg " + i + " = " + arguments[i] + "\n";
}
return(s); // 返回参数列表。
}
alert(ArgTest("dd","cccc"));
明悟 2011-10-29
  • 打赏
  • 举报
回复
楼主的问题感觉是要做一个javascript的编辑器吧?
就像myeclipse的编辑器提示java方法一样提示javascript函数?
hetengfei_ 2011-10-29
  • 打赏
  • 举报
回复
问题补充:
虽然我能找到函数:
但是找不到其参数个数。
还有我想找到参数类型及其提示文字,--好让我能够准确在 参数 输入框中输入参数。

当然,就算我能解决上面的问题。
我还不会调用运行函数?
请求提示编历的函数是如何调用的?

非常感谢你为我解答!!!
hetengfei_ 2011-10-29
  • 打赏
  • 举报
回复
楼上,你的回答不够好。
我的目标:
实现 javascript 函数 大查阅,专对我这样的初学者,做项目时遇到不懂的JavaSript 查阅试验运行的

下面 是描述过程.

我在一个文体框中输入一个对象
自动编历该对象的所有方法。----上面已经实现了

方法 展现在 <select> 控件内
我在<select> 选择其中的一个函数。

动态产生n 个<input type='text'id='para+i'/>的东东来等待我的输入参数。
我一点击“运行”,就调用我选择的函数,执行。
并在 <input type='text'>的value 展示运行函数返回的数据!

高手啊高手,快出现吧!
加载更多回复(8)

87,910

社区成员

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

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