我已运行Toolbar Configurator从工具栏中删除一些不需要的项目。我可以得到工具栏配置,其中包含一些javascript代码,它们以这样的方式开始:
CKEDITOR.editorConfig = function( config ) {
config.toolbarGroups = [
但是,在实例化特定编辑器而不是全局使用它时,我不清楚如何使用它。在我实例化有问题的编辑器之前,我尝试在我的代码中粘贴它,但它显示了包含不需要的项目的完整工具栏。我目前还在进行其他一些CKEDITOR.config
和CKEDITOR.on
作业,这些作业确实有效。
我还尝试通过将config
更改为editor.config
来修改函数中的配置代码(其中编辑器来自"编辑器"传递给回调的事件字段)并在CKEDITOR.on("instanceReady")
的回调中初始化它,但也没有用。
然后我看到this question并尝试使用替换函数,如下所示:
CKEDITOR.on("instanceReady", function(evt) {
...
CKEDITOR.replace(evt.editor.name, {
toolbarGroups: [
...
],
removeButtons: "..."
})
...
这也不起作用!
然后我尝试将配置器中的原始配置粘贴到一个新文件" config2.js"在我的服务器as this page suggests should work上的ckeditor目录中,并将替换调用更改为:
CKEDITOR.replace(evt.editor.name, {
customConfig: "config2.js"
})
即使我用" ../ ckeditor / config2.js"替换字符串,这也不起作用。查看网络请求,我发现它甚至没有尝试请求" config2.js"来自任何地方。
如果它有任何区别,我使用CKEDITOR.inline(div)启动编辑器,据我所知,我必须在事件回调中执行配置。
我也试过从" instanceCreated"中调用替换函数。回调 - 这导致无限循环/最大递归超出错误。我也在" instanceLoaded"中尝试过它。事件,也没有效果。
更新: 我刚刚在控制台中注意到,当它尝试调用replace时会抛出此错误:
Uncaught The editor instance "note1681" is already attached to the provided element.
所以看来我正在做错误的替换。
答案 0 :(得分:0)
我认为在初始化实例后无法隐藏按钮(更改工具栏)。但是,您可以使用新工具栏重新创建ckeditor。 首先,您需要在创建新实例之前销毁当前实例。
Sub STOMacro()
Dim App, Connection, session As Object
Set SapGuiAuto = GetObject("SAPGUI")
Set App = SapGuiAuto.GetScriptingEngine
Set Connection = App.Children(0)
Set session = Connection.Children(0)
If session Is Nothing Then
Set session = Connection.Children(Int(ses))
End If
If MsgBox("Are you sure you want to acknowledge these STOs?", vbYesNo, "Complete STOs?") = vbNo Then
Exit Sub
End If
OrderCounter = Range("A:A").Find("*", Range("A64999"), xlValues, xlWhole, xlByRows, xlPrevious).Row
For i = 1 To OrderCounter
Application.DisplayAlerts = False
STO = Range("A" & i).Value
Application.StatusBar = "Acknowledging STO " & i & " out of " & OrderCounter
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "/nzvmonitor"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[1]/btn[17]").press
session.findById("wnd[1]/usr/txtV-LOW").Text = "STOPrint"
session.findById("wnd[1]/usr/txtENAME-LOW").Text = ""
session.findById("wnd[1]/usr/txtV-LOW").CaretPosition = 14
session.findById("wnd[1]/tbar[0]/btn[8]").press
session.findById("wnd[0]/usr/ctxtS_DLVRY-LOW").Text = "" & STO & ""
session.findById("wnd[0]/usr/ctxtS_DLVRY-LOW").SetFocus
session.findById("wnd[0]/usr/ctxtS_DLVRY-LOW").CaretPosition = 10
session.findById("wnd[0]").sendVKey 8
session.findById("wnd[0]/usr/cntlZVR_OMONITOR_C1/shellcont/shell").currentCellColumn = ""
session.findById("wnd[0]/usr/cntlZVR_OMONITOR_C1/shellcont/shell").selectedRows = "0"
session.findById("wnd[0]/usr/cntlZVR_OMONITOR_C1/shellcont/shell").pressToolbarButton "RCPT"
session.findById("wnd[0]").sendVKey 3
session.findById("wnd[1]/usr/btnBUTTON_1").press
session.findById("wnd[1]").sendVKey 0
session.findById("wnd[0]/usr/cntlZVR_OMONITOR_C1/shellcont/shell").pressToolbarButton "&PRINT_BACK"
session.findById("wnd[1]").sendVKey 0
session.findById("wnd[1]").sendVKey 13
'This is where the print dialogue pops up but I can't interact with it
Next i
MsgBox ("All STOs acknowledged and printed.")
Application.StatusBar = ""
End Sub
对于快速切换工具栏,我建议在配置文件中使用自定义变量。
在ckeditor / config.js中添加工具栏版本
CKEDITOR.instances.note1681.destroy();
CKEDITOR.replace('note1681');
使用它启动ckeditor
editor.my_toolbar = [['Sourcedialog','Cut','Copy']];