javascript函数返回值的问题

现有一javascript代码<html><head><title></title></head><body><scripttype="text/javascript">... 现有一javascript代码
<html>
<head><title></title></head>
<body>
<script type="text/javascript">
function linkSomePage_onclick(){
alert("This link is goning nowhere");
return false;
}
</script>
<a href="somepage.html" name="linkSomePage">
Click Me
</a>
<script type="text/javascript"> window.document.links[0].onclick=linkSomePage_onclick;
</script>
</body>
</html>

当我们将事件处理器作为Html标记的属性的时候
需要加一个关键字return 将返回值返回给onclick事件
如下
onclick="return linkSomePage_onclick()

但是如果将事件处理器作为浏览器对象的属性的时候,为什么不用加关键字return呢?
window.document.links[0].onclick=linkSomePage_onclick
展开
 我来答
殒尘
2011-11-15 · TA获得超过473个赞
知道小有建树答主
回答量:351
采纳率:0%
帮助的人:369万
展开全部
我以前还真没想过这方面的问题,我根据我的经验,猜测一下。
这样写:onclick="return linkSomePage_onclick()",因为绑定的是一个字符串,应该会涉及javascript里eval或者Function之类的,
比如会理解为onclick=eval("return linkSomePage_onclick()"),或者onclick=new Function("return linkSomePage_onclick()"),
这样解释之后,onclick就可以获得一个可执行的响应函数,到现在我们就可以这样理解了 onclick=function(){
return linkSomePage_onclick();
}
它能使得onclick的响应函数执行完之后onclick获得一个多样化的返回值(当然,它只认false,关键之处),
如果你这样onclick=" linkSomePage_onclick()"
就会解释成这样onclick=function(){
linkSomePage_onclick();
}
这样onclick的响应函数执行完之后click事件处理程序获得一个返回值,就是undefined,这个undefined,click的事件处理机制是不认的(只认false),也就是不会阻止默认行为的发生,
你可以这样写看看,<a href="http://www.baidu.com" onclick="return undefined"></a>,是阻止不了访问百度的哦,而<a href="http://www.baidu.com" onclick="return false"></a>就可以,
我们可以猜想下事件处理程序是什么样的
1.发生click事件
2.执行绑定的响应函数
3.判定返回结果是否恒等于false,注意,是恒等于,是的话,事件处理程序终止,否的话,继续往下执行默认click行为(是链接的话就跳转链接,是提交的话就提交数据)

当然,以上仅是我个人猜想,仅作参考
房雁凡s9
2011-11-15 · TA获得超过1360个赞
知道小有建树答主
回答量:504
采纳率:100%
帮助的人:507万
展开全部
可以这样理解
onclick="return linkSomePage_onclick()" 相当于
window.document.links[0].onclick=function(){ return linkSomePage_onclick();}

html中的 引号 相当于匿名函数结构 function(){}
如果不加return ,在 匿名函数体中就只有一个 linkSomePage_onclick() 事件执行, 由于它返回true / false 简化就相当于
window.document.links[0].onclick=function(){ true / false }
显然....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shshshdy
2011-11-15 · TA获得超过102个赞
知道小有建树答主
回答量:264
采纳率:0%
帮助的人:186万
展开全部
window.document.links[0].onclick=linkSomePage_onclick//添加事件、方法
window.document.links[0].setAttribute("onclick","return linkSomePage_onclick()");//添加属性

window.document.links[0].onclick对应的是方法,也可以是匿名的,如下。
window.document.links[0].onclick = function(){alert(This link is goning nowhere);return false;}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式