一个奇怪问题,超链接中无法执行onclick中的js方法

<!DOCTYPEhtml><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Conten... <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript" >
function search() {
console.log('ff');
return false;
}

</script>
</head>
<body>
<a onclick="javascript:search();" >aaaa</a>
<button onclick="javascript:search();">ann</button>
</body>
</html>

上面的代码中:
<a onclick="javascript:search();" >aaaa</a> 不可以
<a onclick="search();" >aaaa</a> 不可以

<a href="javascript:search();" >aaaa</a> 可以
<a href="search();" >aaaa</a> 可以

求原因?
展开
 我来答
shenkebiao
2015-10-01 · TA获得超过605个赞
知道小有建树答主
回答量:367
采纳率:100%
帮助的人:151万
展开全部

对于 (如onclick)  事件而言,javascript:function()  和  function()  都是可以的;

<a onclick="javascript:searchs()">aaaa</a>
<a onclick="searchs()">aaaa</a>
<script type="text/javascript">
function searchs()
{
    alert(1234); return false;
}
</script>



 

<a href="javascript:searchs()">aaaa</a>

而对于超链接的 href 而言,只能通过 javascript:function() ,而不能直接 function()

<script type="text/javascript">
function searchs()
{
    alert(1234); return false;
}
</script>

但是超链接的 href 中不能直接写 function() ,因为这样写会直接当成 url 地址进行跳转,而不是去执行某个方法,所以要加上 javascript:  指定是执行 脚本方法而不是直接 url 跳转;


至于你的  search,是系统关键字,已经被占用了所以不能再用;

yugi111
2015-10-01 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
search

是关键字
对于在事件属性onclick中的显示引用javascript:
表示原生状态
var str = "";
str.search() == -1
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式