function abc(){}这里定义了一个函数,通过toString()可以获取到函数的字符串,然后通过正则表达式可以获取到声明的abc,呵呵,之前看angularjs里面的一段代码,希望对你有用
/*** @see 鼠标点击拖拽的效果(页面可以同时拖动多个框)
* @param boxId 整个对象(框)的id(一般为div或table)
* @param event 内置对象(必须传入)
*/
function mousePlead1(event, boxId) {
var o = getO(boxId)
var isIE = document.all ? true : false
var e = event
var x = e.offsetX || e.layerX
var y = e.offsetY || e.layerY
document.onmousemove = function(e) {
o.style.filter = 'Alpha(opacity=70)'
o.style.opacity = '0.7'
if (isIE) {
o.setCapture()
} else {
window.captureEvents(Event.MOUSEMOVE)
}
var e = window.event || e
if (e.clientX - x >= 0 && e.clientY - y >= 0 && e.clientX - x <= getWinSize()[0] - getO(boxId).offsetWidth
&& e.clientY - y <= getWinSize()[1] - getO(boxId).offsetHeight) {
o.style.left = (e.clientX - x) + "px"
o.style.top = (e.clientY - y) + "px"
}
}
document.onmouseup = function(e) {
document.onmousemove = function() {
}
if (isIE) {
o.releaseCapture()
} else {
window.releaseEvents(o.MOUSEMOVE)
}
o.style.filter = ""
o.style.opacity = ""
}
}
/**
* @see 获得对象
* @param id 对象的id(表单元素和其他标签都可以)
* @return Object
*/
function getO(id) {
return document.getElementById(id)
}
/**
* @see 获得当前窗体的大小(width,height)
* @return Array
*/
function getWinSize() {
var width = parseInt(document.documentElement.clientWidth)
var height = parseInt(document.documentElement.clientHeight)
return new Array(width, height)
}
为什么可以通过id直接访问对象,是因为所有的元素ID都相当于一个保存对象的全局变量。
通过id直接访问对象还存在兼容问题。
建议用document.getElementById标准的形式获取对象。
如果一个元素符合下面两条规则中的任一条,则window对象中必须要有与之对应的一个属性,属性值就是这个对象。
如果一个元素拥有ID属性,那么ID属性的属性值就会成为window对象的属性名.
如果一个元素拥有name属性,那么name属性的属性值就会成为window对象的属性名.但这个元素的标签名必须是: a, applet, area, embed, form, frame, frameset, iframe, img, object,其中的一个。
但是如果网页有两个相同ID的元素,就有点差异了:
<html><head>
<script type="text/javascript">
function getInput() {
var mydiv = document.getElementById("div1")
alert(mydiv.length)//mydiv是DispHTMLElement
alert(div1.length)//div1是DispHTMLElementCollection
}
</script>
</head>
<body>
<div id="div1">123</div>
<div id="div1">456</div>
<input type="button" value="Test" onclick="getInput()" />
</body>
</html>