我正在使用VisualEditor扩展MediaWiki实现,并遇到以下情况:
我有一个 div,其内容(打开和关闭标签之间的文本)应与在 wiki 和可视化编辑器中看到的不同。在 wiki 中,我想查看全文,但在 VE 中,我只想查看缩写词。这些也可以在 VE 中修改/删除/扩展。
例如,我想Product A, Product B and Product C
在 wiki 中看到,但pa,pb,pc
在 VE 中。当我将 VE 中的值更改为,比如说,px,py
我想Product X and Product Y
在 wiki 中查看。
问题是 VE 会自动为文本创建一个段落,所以在 VE 中数据是这样存储的:
data[i]: My-Custom-Div-Data-Structure
data[i+1]: Paragraph
data[i+2]: T
data[i+3]: e
data[i+4]: x
data[i+5]: t
data[i+6]: /Paragraph
data[i+7]: /My-Custom-Div-Data-Structure
在一个方向(HTML Dom -> VE 线性数据)我通过在我的自定义数据结构的 toDataElement 函数中将新值设置为 domElement 来解决这个问题。
但是我怎么能意识到另一个方向呢?我有一个 VE 线性数据元素,但我无法将正确的值设置为内部/外部 HTML/Text 或 textContent,因为在处理完我的自定义数据结构后,旧值会从段落中获取并插入到 div 之间,导致双重文本。