HTML:onpaste =“doSomething();”作为无效属性

时间:2012-09-11 10:11:14

标签: html onpaste

我正在用Amaya检查我的HTML代码。

我在这一行有错误:

<input style="vertical-align:bottom;" type="text" id="doi_id" onkeydown="if (event.keyCode == 13) return false;" onpaste="parsePIIfromDOI();"/>

对于onpaste,我收到“无效属性”onpaste“(保存后删除)”错误。

我不知道为什么?非常感谢你的帮助。

2 个答案:

答案 0 :(得分:3)

http://reference.sitepoint.com/html/extended-event-attributes/onpaste

“Microsoft定义的非标准事件用于Internet Explorer。可能在其他一些浏览器中有效,但无法可靠地使用。此非标准属性的兼容性未经过测试。”

答案 1 :(得分:3)

Amaya编辑器使用文档类型定义执行语法检查,其内置指令表仅包含不允许onpaste属性的文档类型。这就是您收到错误消息的原因。

Amaya可能无法解决此消息。您可以使用工具→更改文档类型→删除文档类型,或者更好地在显示源模式下手动将文档类型声明更改为<!doctype html> HTML5文档类型。但Amaya仍然不断检查它认为是正确的规范。

Amaya是一名编辑(和一个测试平台浏览器),而不是一个检查器。使用validator检查语法。然后,您可以使用<!doctype html>指定HTML5。请注意HTML5有一些奇怪之处,与流行的误解相反,它不是HTML 4.01的纯粹扩展。显然,由于Amaya决定删除该属性,您需要使用不同的编辑器。

onpaste是否有用且安全使用是一个不同的问题。

更新(2018年7月):在过去的几年中,onpaste尚未成为官方HTML的一部分,因此验证程序会发出有关它的错误消息。然而,支持似乎出现,例如在Chrome中。如果您需要避免验证错误(或者您的编辑器删除了onpaste属性),请使用JavaScript为元素节点的onpaste属性赋值,而不是使用HTML标记中的属性。