Javascript onclick属性在href属性之后是否冗余?

Javascript onclick属性在href属性之后是否冗余?,javascript,html,Javascript,Html,在下面的代码中 <div id="content"> Here is my <a href="javascript:(function(){ _my_script=document.createElement('SCRIPT'); _my_script.type='text/javascript'; _my_script.src='file:///D:/Access/bookmark/bmlet.js';

在下面的代码中

<div id="content">
    Here is my <a href="javascript:(function(){ 
        _my_script=document.createElement('SCRIPT');
        _my_script.type='text/javascript';
        _my_script.src='file:///D:/Access/bookmark/bmlet.js';
        document.getElementsByTagName('head')[0].appendChild(_my_script);})();">
    bookmarklet</a>
</div>

这是我的
除了书签功能,
javascript:
URI方案允许您调用javascript代码,该代码可以在锚定标记(
a
)的事件上检查/更新当前页面的DOM

再比如说,

可以写成,


那么,html属性
onclick
的用途是什么呢?

onclick属性看起来是多余的,因为您将链接用作按钮。这在语义上是不正确和误导的:链接导航到不同的位置,按钮执行操作。如果要执行操作,请使用按钮元素

如果需要链接,则href属性应为链接目标,onclick应用于附加其他行为

编辑 有关链接和按钮用途的其他信息

HTML 5.1规范:

如果a元素具有href属性,则表示超链接 (超文本锚)以其内容为标签

除被激活外,A没有其他用途,可通过以下方式推断:

类型属性控制按钮激活时的行为


在HTML属性中插入复杂脚本也被认为是一种不好的做法,因为这会使维护更加困难,从而导致错误。

这只是一种替代方法;无论哪种方式,如果您想要更改任何内容,您都会使用具有荒谬维护开销的突兀JavaScript。将JavaScript移到HTML之外会更好,而且更新和维护也更容易。
onclick
不是备选方案,因为
JavaScript:
URI方案还提供书签功能,而且没有
onclick
事件,也许你的意思是,
onclick
比特币在我的本地货币之后是多余的吗?比特币不是替代品,因为我的本国货币也提供了highstreet零售功能。“如果您需要链接,则href属性应为链接目标,onclick应用于附加其他行为。”-我理解并赞赏这一点;但是你没有提供任何证据来证实你的断言。虽然我知道你想帮忙,但你回答了一个非常糟糕的问题——听起来像是伪装成“讨论”的咆哮——答案本身就很糟糕,而且是基于观点的。1)好吧,罗伯。但是,如果链接目标应该是
href
属性,那么为什么允许使用
javascript:
URI模式将javascript代码作为
href
值呢?##########2)请忽略将复杂脚本插入HTML属性的编码样式,因为这是本主题的次要内容。@overchange javascript在a href中工作的原因(前缀为
javascript:
)这并不是因为href本来就是要这样工作的,而是因为设置URL是一种简单的插入方式,特别是在使用WebView的程序中,这些程序不一定是浏览器,或者在浏览器配备易于访问的控制台之前使用传统浏览器,所以URL输入就是这样工作的。由于流行的bookmarklet的不完整性,但它确实带来了真正的安全风险,因为它是一个非常简单的XSS向量。@PaulS。因此,在
href
中,
javascript:
URI方案由于bookmarklet的原因而被卡住,这对我来说是有意义的。这是否意味着我应该使用
href=“#”
而不是
href=javascript:void(0)“<代码> HREF =“JavaScript:无效(0)”< /代码>是一个错误用法,语义上。如果它不是用来导航页面的,那么考虑一下,如果你想要一个<代码> <代码>,而不是其他元素。