点文字执行js代码,这段代码错在哪里?

我想点文字执行js代码,这段代码错在哪里?比如点“关于”,弹出一个窗口提示段文字:<scripttype="text/javascript">functionabout(... 我想点文字执行js代码,这段代码错在哪里?
比如点“关于”,弹出一个窗口提示段文字:

<script type="text/javascript">
function about(){
alert("hello");
}
</script>

以下两句都出一样错:找不到对象。
<a href="" onclick="about();">关于</a>
<a href="" onclick="javascript:about();">关于</a>
展开
 我来答
cmoooo
2013-06-08 · TA获得超过3588个赞
知道小有建树答主
回答量:741
采纳率:0%
帮助的人:758万
展开全部
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>学习</title>
    <script type="text/javascript">
    function about(){
alert("hello");
    }
    </script>
</head>
<body>
    使用viod(): <a href="javascript:void(0);" onClick="about();">关于</a>
    <hr/>
    使用href: <a href="javascript:about();">关于</a>
    <hr/>
    使用return: <a href="" onClick="about();return false;">关于</a>
</body>
</html>

这是完整的,可以通过的HTML文档。


——————以下是解释————————


首先,想要让a标签具有onclick事件,并且该a标签没有链接的话,目前有三种主流的做法:


第一, 就是给href属性中加入一个“javascript:void(0);”。

如果href中没有值的话,一些浏览器会认为你要访问该网站的域名所在页,比如:


<a href="" >链接</a>


这个链接在一些浏览器中会被认为你要访问该站的主域名,其它的一些浏览器也会有自己不同的默认值,所以这么写,会引发很多不可控结果;


那么这种做法是:<a href="javascript:void(0);" onClick="about();" >关于</a>


————

第二,直接在a标签的href属性中执行javascript,只要在要执行的代码前加上"javascript:"就可以:


<a href="javascript:about();">关于</a>


————

第三,可以让href留空或写入任意值,但因a标签在W3C规范中,必须要有href或name属性其一,那么我们可以让其留空或者写入一个“#”,然后让onClick所执行的javaScript返回一个假,用以阻止浏览器执行完onClick后,再去执行后续的跳转:


<a href="#" onClick="about(); return false;">关于</a>






________________________

另外,在XHTML和HTML5中,对标签中行内事件的写法上,事件属性名的大小写有所要求,但这并不是强制的,所以这个问题目前来看并不是引发问题的原因。


比如onclick应该尽可能地写成:onClick,而不是onclick;


只有在JS里面对DOM进行事件处理的时候,是全部小写的:


tag.onclick = function(){about();};


——————————

另外,你不但要注意以上这些,还要注意你的HTML网页结构,是否符合HTML的结构标准,即含有<!doctype>的DOM类型定义、<html>、<head><body>这些必要的结构式标签,如果没有这些,只在你的网页中出现简单的<script>/<a>之类的标签的话,浏览器可能会运行出错。


以上。

追问
viod("0")是个不执行任何操作的空函数?是js现成默认的,还是需要定义的?
追答
这个不是JS默认的。

void()是运算符,对任何值都返回undefined;和typeof运算符号一样可以 void(0) = void 0;

所以,程序员们发现href中支持以javascript:方式执行JS语句后,就将它放在了href里,用以表示什么都不执行、空语句的意思,这们,即照顾了W3C规范,也规避了因为href为空而出现浏览器乱设定其默认值的情况。
zhaoapk
2013-06-08 · TA获得超过3771个赞
知道大有可为答主
回答量:1343
采纳率:40%
帮助的人:1754万
展开全部
上面的代码没有问题。

上面的代码是你在用的代码,还是你简单写的。
页面只有这些代码吗?
点击关于之前浏览器没有提示其他js错误吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
unwmunwm
2013-06-08 · TA获得超过711个赞
知道小有建树答主
回答量:455
采纳率:0%
帮助的人:353万
展开全部
<a href="#" onclick="javascript:about();">关于</a>
<a onclick="javascript:about();">关于</a>
href如果显式的存在,则不能为空,如第一行;要么就不显示它,如第二行。
href=""会报错,因为点击它时,浏览器认为href指定了值,然该值却为空字符串,故而报找不到对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
都威
2013-06-08 · TA获得超过120个赞
知道小有建树答主
回答量:256
采纳率:100%
帮助的人:144万
展开全部
为啥我的IE6可以!`````
IE8下你得点击ie下弹出的提示框“Allow blocked content”
或者启用了“增强安全性设置”.

或者你用的IETester
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蟑螂ipis
2013-06-08 · TA获得超过203个赞
知道小有建树答主
回答量:427
采纳率:0%
帮助的人:249万
展开全部
你这样写试试, href="javascript:void(0)"

还不行清除一下缓存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
欧阳寒涵就是周大师
2013-06-08 · TA获得超过215个赞
知道小有建树答主
回答量:260
采纳率:100%
帮助的人:145万
展开全部

代码没问题

有问题加我私信QQ

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式