MediaWiki VisualEditor:访问自动生成的段落?

时间:2016-04-06 11:09:28

标签: javascript jquery mediawiki visual-editor

我正在使用 VisualEditor 扩展 MediaWiki 实施,并且遇到以下情况:

我有一个div,其内容(打开和关闭标记之间的文本)应该与wiki和VisualEditor中看到的不同。在wiki中,我想查看全文,但在VE中我只想看缩写。这些也可以在VE中修改/删除/扩展。

例如,我想在维基中看到Product A, Product B and Product C,但在VE中看pa,pb,pc。当我将VE中的值更改为px,py时,我想在维基中看到Product X and Product Y

问题是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 /文本或textContent,因为在我的自定义数据结构得到处理后,旧的值取自段落并插入div之间,导致双重文本。

1 个答案:

答案 0 :(得分:0)

我无法访问该段落所以我使用了一个非常丑陋的黑客。在ve.dm.Converter.js.prototype.getDomSubtreeFromData中,在插入段落文本的行中,我添加了一个检查,如果父级是我的自定义数据类型,则检查text.length > 0(第1220行)。

这是一个非常丑陋的解决方案,但遗憾的是我现在还不知道更好。

相关问题