【问题标题】:HTML: onpaste="doSomething();" as invalid attributeHTML: onpaste="doSomething();"作为无效属性
【发布时间】:2012-09-11 10:11:13
【问题描述】:

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

我在这一行有一个错误:

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

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

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

【问题讨论】:

  • 什么是onpaste? AFAIK onpaste 事件在 html 中不可用
  • 可能是因为onpaste 是无效的 HTML 属性?
  • @Milos 你用的是哪个浏览器?? onpaste 是有效的,请参阅jsfiddle.net/TgY6B/1
  • @Harry,例如在 texbox 中粘贴某些内容时,将调用 onpaste 事件。对我来说,在 mozilla 中工作,但 Amaya 向我显示了一个错误。
  • @Stefan,为什么 onpaste 可以在 Mozilla 以及 2yogi-s 示例中使用?

标签: html onpaste


【解决方案1】:

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

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

【讨论】:

  • 感谢 Stefan 提供的信息,您认为我应该使用这种方法吗?目前,适用于 Mozilla 和 IE。我不知道其他人。
  • 我觉得可以,在这个链接:codebits.glennjones.net/editing/getclipboarddata.htm我们可以看到只有opera不支持onpaste属性。
  • @Milos:谷歌分析告诉我,大约 1% 的网站访问者使用 Opera。我怀疑它对于您的网站也是一样的。如果您对那些没有此功能的访问者感到满意,那么您可以使用它。但你也可以考虑使用 jQuery 来绑定 onpaste 事件:stackoverflow.com/questions/237254/…stackoverflow.com/questions/686995/jquery-catch-paste-input/…
  • 谢谢 Stefan,事实上,我创建的页面仅供内部使用,只有我可以控制的一些已知成员(访问、浏览器等)才能访问。我认为暂时应该没问题。非常感谢 jQuery 的想法。我去看看。
  • @Milos:不客气。实际上“普通”的 javascript(不是 jQuery)看起来也很简单:stackoverflow.com/a/546942/888177
【解决方案2】:

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

在 Amaya 中可能无法绕过这条消息。您可以使用工具 → 更改文档类型 → 删除文档类型,或者更好的是,在显示源模式下手动将文档类型声明更改为 &lt;!doctype html&gt;,即 HTML5 文档类型。但是 Amaya 仍然不断检查它认为正确的规范。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-04
    • 2015-07-25
    • 2018-11-10
    • 2011-01-12
    • 2021-04-19
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    相关资源
    最近更新 更多