什么是JavaScript事件处理程序中的“javascript:”?

时间:2011-06-01 09:28:22

标签: javascript javascript-events

JavaScript事件处理程序中的javascript:是什么?

如:

<input onkeydown="javascript:return false;" type="text" name="textfield" />

5 个答案:

答案 0 :(得分:8)

这是一个错误。事件处理程序中不需要伪协议。

在网址(例如a元素href属性)上,如果您输入javascript:并使用javascript进行操作,则浏览器将运行javascript代码。

对于事件处理程序,虽然浏览器不会报告错误,但不需要这样做。

答案 1 :(得分:8)

在这种情况下,它将被解释为label。你也可以在这里写foobar:,它会产生同样的效果。

JavaScript代码中并不真正需要它(我从未在实际代码中看到过它),尽管它可能很有用:

  

提供带有标识符的语句,您可以使用breakcontinue语句引用该标识符。

     

例如,您可以使用标签来标识循环,然后使用breakcontinue语句来指示程序是应该中断循环还是继续执行循环。

在您的情况下,标记应该只是:

<input onkeydown="return false;" type="text" name="textfield" />

但是如果你在URI中使用它作为方案,它会告诉浏览器将URI解释并执行为JavaScript:

<a href="javascript:alert(1);">Foo</a>

(我不是说你应该这样做。)

我认为不熟悉JavaScript的人会看到这一点,并认为他们必须将javascript:置于HTML代码的前面,而且还要放在事件处理程序中。

答案 2 :(得分:1)

你可以写return false。那时javascript协议在链接中很有用。 href属性:<a href="javascript:return false">

答案 3 :(得分:0)

这不应该存在。

javascript:前缀主要用于链接,因为浏览器中的javascript:协议通常会执行代码,例如:

<a href="javascript:alert('test')">Test</a>

但是,在事件处理程序中,它已经在解析JavaScript,因此不需要它。它基本上什么都不做。

答案 4 :(得分:-1)

告诉浏览器接下来是JavaScript代码只是标记。但是,它不是必需的,因此您不必包含它。