微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

| JavaScript事件处理程序中的“ 0”是什么? 如:
<input onkeydown=\"javascript:return false;\" type=\"text\" name=\"textfield\" />
    

解决方法

        这是一个错误。事件处理程序中不需要伪协议。 在URL(例如,
a
元素
href
属性)上,如果输入
javascript:
并在其后加上javascript,浏览器将运行javascript代码。 对于事件处理程序,虽然浏览器不会报告错误,但这不是必需的。     ,        在这种情况下,它将被解释为标签。您也可以在此处写
foobar:
,其效果相同。 尽管它可能很有用,但在JavaScript代码中并不需要它(我从未见过在实际代码中使用过它):   提供带有标识符的语句,您可以使用
break
continue
语句引用该标识符。      例如,可以使用标签标识循环,然后使用
break
continue
语句指示程序是应中断循环还是继续执行。 在您的情况下,标记应仅为:
<input onkeydown=\"return false;\" type=\"text\" name=\"textfield\" />
但是,如果您将它用作URI中的方案,它会告诉浏览器将URI解释并执行为JavaScript:
<a href=\"javascript:alert(1);\">Foo</a>
(我并不是说您应该做这样的事情。) 我假设不太熟悉JavaScript的人看到了这一点,并认为他们必须在事件处理程序中的HTML的JavaScript代码之前到处放置“ 0”。     ,        您可以只写
return false
。那时,“ 14”协议在链接中很有用。
href
属性:
<a href=\"javascript:return false\">
    ,        这是不应该存在的东西。 前缀“ 0”主要用于链接,因为浏览器中的“ 0”协议通常会执行代码,例如:
<a href=\"javascript:alert(\'test\')\">Test</a>
不过,在事件处理程序中,它已经在解析JavaScript,因此不是必需的。它基本上什么也没做。     ,        只是告诉浏览器以下是JavaScript代码的标记。但是,它不是必需的,因此您不必包括它。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。