Javascript 在SCEditor中将列表项标记设置为[*]x,而不是[li]x[/li],以实现vBulletin兼容性 TL;博士
SCEditor对列表项使用Javascript 在SCEditor中将列表项标记设置为[*]x,而不是[li]x[/li],以实现vBulletin兼容性 TL;博士,javascript,bbcode,vbulletin,sceditor,Javascript,Bbcode,Vbulletin,Sceditor,SCEditor对列表项使用[li]test[/li]。为了使其与VB兼容,我想将其更改为[*]test。但我的方法并不完全有效。我可以让编辑器为列表项插入[*]。但是,它们总是在内容之前包含不需要的换行符 所以问题是:在当前解决方案(见上文)的[*]之后,如何将[li]x[/li]更改为[*]x,而不中断换行? 详细的解释和我的方法 我希望SCEditor与VBulletin兼容。许多BBCode可以工作,但列表不能。在SCEditor中创建列表时,会生成以下BBCode: [ul] [li]
[li]test[/li]
。为了使其与VB兼容,我想将其更改为[*]test
。但我的方法并不完全有效。我可以让编辑器为列表项插入[*]
。但是,它们总是在内容之前包含不需要的换行符
所以问题是:在当前解决方案(见上文)的[*]
之后,如何将[li]x[/li]
更改为[*]x
,而不中断换行?
详细的解释和我的方法
我希望SCEditor与VBulletin兼容。许多BBCode可以工作,但列表不能。在SCEditor中创建列表时,会生成以下BBCode:
[ul]
[li]x[/li]
[li]y[/li]
[/ul]
VBulletin不解析此项,因为它使用[list]
而不是[ul]
。通过理解,我可以通过替换BBCode的格式来解决此问题:
sceditor.formats.bbcode.set('ul', {
tags: {
ul: null
},
breakStart: true,
isInline: false,
skipLastLineBreak: true,
format: '[list]{0}[/list]',
html: '<ul>{0}</ul>'
})
现在,当按下列表按钮时,编辑器将插入BBCodes(BBCodes),几乎与我需要的一样:
[list]
[*]
x[/list]
因为它在[*]
和内容之间创建了一个换行符,所以它看起来是断开的:
似乎编辑器控件(插入列表按钮)使用了
li
,其中*
(最后一项)处理从BBCode到编辑器HTML的解析(在源代码和所见即所得视图之间切换时) 发现我需要在*
BBCode中将isSelfClosing
设置为false
<不需要代码>skipLastLineBreak,也不需要使用sceditor.formats.bbcode.remove('*')
删除标记,因为set()
会覆盖任何现有标记(如文档中所述)
以下工作:
sceditor.formats.bbcode.set('*', {
isInline: false,
// Avoid automatically closing tag [/*]
excludeClosing: true,
// Avoids line break between [*] and list point content
isSelfClosing: false,
html: '<li>{0}</li>'
})
sceditor.formats.bbcode.set('*', {
isInline: false,
// Avoid automatically closing tag [/*]
excludeClosing: true,
// Avoids line break between [*] and list point content
isSelfClosing: false,
html: '<li>{0}</li>'
})
[list]
[*]x
[*]y
[/list]