我正在用Amaya检查我的HTML代码。
我在这一行有错误:
<input style="vertical-align:bottom;" type="text" id="doi_id" onkeydown="if (event.keyCode == 13) return false;" onpaste="parsePIIfromDOI();"/>
对于onpaste,我收到“无效属性”onpaste“(保存后删除)”错误。
我不知道为什么?非常感谢你的帮助。
答案 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标记中的属性。