我正在使用 Amaya 检查我的 HTML 代码。
我在这一行有一个错误:
<input style="vertical-align:bottom;" type="text" id="doi_id" onkeydown="if (event.keyCode == 13) return false;" onpaste="parsePIIfromDOI();"/>
对于 onpaste,我收到“无效属性“onpaste”(保存时删除)”错误。
我不知道为什么?非常感谢您的帮助。
http://reference.sitepoint.com/html/extended-event-attributes/onpaste
“Microsoft 为在 Internet Explorer 中使用而定义的非标准事件。可能在某些其他浏览器中有效,但不能可靠地使用。此非标准属性的兼容性未经测试。”
Amaya 编辑器使用文档类型定义执行语法检查,其内置曲目仅包括不允许该onpaste
属性的文档类型。这就是您收到错误消息的原因。
在 Amaya 中可能无法绕过这条消息。您可以使用 Tools → Change doctype → Remove the doctype,或者更好的是,在 Show Source 模式下手动将 doctype 声明更改<!doctype html>
为 HTML5 doctype。但 Amaya 仍然不断检查它认为正确的规范。
Amaya 是一个编辑器(和一个测试平台浏览器),而不是一个检查器。使用验证器检查您的语法。然后您可以使用<!doctype html>
来指定 HTML5。请注意 HTML5 有一些奇怪之处,与流行的误解相反,它不是 HTML 4.01 的纯粹扩展。显然,因为 Amaya 决定删除该属性,您需要使用不同的编辑器。
是否onpaste
有用和使用安全是一个不同的问题。
更新(2018 年 7 月):多年来,onpaste
它还没有成为官方 HTML 的一部分,因此验证器会发出一条关于它的错误消息。然而,支持似乎出现在例如 Chrome 中。如果您需要避免验证错误(或您的编辑器删除onpaste
属性),请使用 JavaScript 为元素节点的属性分配值,onpaste
而不是在 HTML 标记中使用属性。