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)”< /代码>是一个错误用法,语义上。如果它不是用来导航页面的,那么考虑一下,如果你想要一个<代码> <代码>,而不是其他元素。