作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经拥有表格所需的所有属性(即行数、列数、样式、类、标题样式等)。
当用户单击我的自定义按钮时,我需要添加具有此属性的表,而不需要通过任何对话框。
我考虑过显示对话框并用我的数据替换必填字段并触发“确定”单击。但这......有点丑陋的解决方案。
请告诉我,这个任务有什么优雅的解决方案吗?
最佳答案
通过实际破解默认值以使它们像 getter 函数一样解决问题,并在显示对话框后单击“确定”按钮:
(警告,咖啡)
CKEDITOR.on 'dialogDefinition', (ev) ->
if ev.data.name is 'table'
info = ev.data.definition.getContents 'info'
advanced = ev.data.definition.getContents 'advanced'
# HACK: default value now returns always value I have control on
info.get('txtRows')['default'] = { toString: -> self.ckeditor_table_rows }
info.get('txtCols')['default'] = { toString: -> self.ckeditor_table_cols }
# setup some normal defaults
info.get('txtWidth')['default'] = ''
info.get('txtBorder')['default'] = '0'
info.get('selHeaders')['default'] = 'row'
advanced.get('advCSSClasses')['default'] = 'table table-striped'
ev.data.definition.dialog.on 'show', ->
# make it create table, once dialog shown
this.getButton('ok').click()
# hide my own popover-like dialog
$('.has-popover').popover('hide')
这里的技巧是每次默认值都会尝试转换为字符串时调用toString
方法。当这个默认值被输入到输入时,就会发生这种情况。
关于javascript - CKEditor 4 如何在没有用户交互的情况下添加表格(即没有对话框),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19761733/
我是一名优秀的程序员,十分优秀!