将包含非法字符 @ 的属性添加到 DOM

Adding attribute containing an illegal character @ to DOM

上下文

我想使用 javascript 重新渲染一些现有的 HTML。服务器端不在我的控制之下,我无法对正在处理的 HTML 文档应用任何更改,我必须完全在客户端工作。

我想利用 vue 功能,使用 petite-vue。为此,我计划操纵 DOM 并将 vue 指令添加到准备脚本中的 DOM 节点。该脚本完成后,我想安装 vue 应用程序。

问题

此方法的一个问题是某些 vue 指令包含非法字符。比如在某个元素上,我想设置一个属性Attr("@vue:mounted", "mounted()")。这会引发 DOMException,因为 @vue:mounted is not a valid XML-Name(由于起始 @)这是 DOM 属性名称的要求。

如何设置此属性以便 vue 接受它?我认为 vue 以某种方式解决了非法字符,因为它以某种方式设法读取了属性。但是我不熟悉 vue 的内部结构。也许还有一种方法可以在不了解 vue 的内部实现我想要的东西,但我也不知道该怎么做。

在 Vue 中,@ 字符(在模板中)只是 v-on: 的 shorthand。而作为petit-vueshould be compatible这方面,你可以尝试用Attr("v-on:vue:mounted", "mounted()")代替...