什么时候需要指定JavaScript协议?

我的印象是,在URL属性(如hrefs)中使用JavaScript时,我只需要指定“协议”。这是唯一的“有用”上下文javascript:吗?


明智的:


<a href="javascript:alert('Hello')">World!</a>

愚蠢:


<form onsubmit="javascript:alert('oops!')">

这是正确的吗?还是我需要注意一些晦涩的错误/用例?


梦里花落0921
浏览 331回答 3
3回答

猛跑小猪

javascript:事件处理程序上的伪协议将仅被忽略,您不需要它,JavaScript引擎将解释javascript:为Label Statement。标签只是为语句提供标识符,并允许您在程序的其他位置引用它。恕我直言,此伪协议仅对书签有用。

明月笑刀无情

正如其他答案所提到的,避免使用javascript:href链接,并且在事件处理程序属性中完全没有必要。但是,由于A标记有时在语义上仍然正确,因此,href如果您想将CSS样式:link和:hoverCSS样式应用于Internet Explorer中的元素,则需要在属性中添加一些内容。在这种情况下,请使用:<a href="#" onclick="doSomething(); return false;">Link</a>要么<a href="javascript://" onclick="doSomething();">Link</a>javascript协议存在一个(有点晦涩)错误-在Internet Explorer *中,单击链接时会认为您正在离开页面。如果您正在使用window.onbeforeunload,那么此时将显示您的导航信息。仅出于这个原因,我们已经完全停止使用javascript协议,因此不会显示此错误,因为在向某个页面添加导航信息时,我们忘记了对其进行检查。*我第一次写这篇文章时可能已经指定了版本。我完全不记得了,但是以防万一该错误只出现在如今已绝大部分的浏览器(如IE 6或7)中,您最好自己进行测试。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript