6 javascript javascript-events
什么是javascript:JavaScript事件处理程序?
如:
<input onkeydown="javascript:return false;" type="text" name="textfield" />
Run Code Online (Sandbox Code Playgroud)
这是一个错误.事件处理程序中不需要伪协议.
在URL(例如,a元素href属性)上,如果您javascript:使用javascript 输入并遵循它,浏览器将运行javascript代码.
对于事件处理程序,虽然浏览器不会报告错误,但不需要这样做.
在这种情况下,它将被解释为标签.你也可以写foobar:在这里,它会产生同样的效果.
JavaScript代码中并不真正需要它(我从未在实际代码中看到过它),尽管它可能很有用:
提供带有可使用
break或continue语句引用的标识符的语句.例如,您可以使用标签来标识循环,然后使用
break或continue语句指示程序是应该中断循环还是继续执行.
在您的情况下,标记应该只是:
<input onkeydown="return false;" type="text" name="textfield" />
Run Code Online (Sandbox Code Playgroud)
但是如果你在URI中使用它作为scheme,它会告诉浏览器将URI解释并执行为JavaScript:
<a href="javascript:alert(1);">Foo</a>
Run Code Online (Sandbox Code Playgroud)
(我不是说你应该这样做.)
我认为不太熟悉JavaScript的人会看到这一点,并认为他们必须javascript:在HTML中的JavaScript代码前面,也在事件处理程序中.