首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML: onpaste="doSomething();“作为无效属性

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

Stack Overflow用户
提问于 2012-09-11 18:11:14
回答 2查看 3.9K关注 0票数 4

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

我在这一行有一个错误:

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

而对于onpaste,我得到了"Invalid attribute "onpaste"(removed saving)“错误。

我也不知道原因?非常感谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-11 18:19:27

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

“Microsoft为在Internet Explorer中使用而定义的非标准事件。可以在某些其它浏览器中工作,但不能可靠地使用。未测试此非标准属性的兼容性。”

票数 3
EN

Stack Overflow用户

发布于 2012-09-11 19:11:42

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

在Amaya中可能没有办法绕过这个消息。您可以使用Tools→更改doctype→删除文档类型,或者,更好的做法是在Show Source模式下手动将doctype声明更改为<!doctype html>,即HTML5文档类型。但是Amaya仍然不断地检查它认为正确的规范。

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

使用onpaste是否有用和安全是另一个问题。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12367417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档