Appearance
与事件处理相关的属性
CancelLastCommand
说明:
布尔型;只写;在"OnFileCommand"事件中使用。请参考"OnFileCommand"事件。设置最后一次的文件操作是否应该取消。该属性可用于接管缺省的工具栏的新建,打开或者保存操作,并设置该参数为true来取消缺省操作。
语法:
javascript
// 设置
Obj.CancelLastCommand = true; // 或 false
使用示例:
javascript
// 接管保存菜单和按钮的操作,并取消缺省的操作
<script language="JScript" for="TANGER_OCX" event="OnFileCommand(cmd,canceled)">
if (cmd == 3) { // user has clicked on file save menu or button
// save to server
// cancel default process
TANGER_OCX_SaveEditToServerDisk();
document.getElementById("TANGER_OCX").CancelLastCommand = true;
}
</script>
功能说明:
true
:取消最后一次的文件操作false
:不取消操作(默认)
CancelSheetDoubleClick
说明:
布尔型;只写;设置是否取消Excel双击操作。该属性必须在事件OnSheetBeforeDoubleClick中使用。请参考事件OnSheetBeforeDoubleClick的介绍。
语法:
javascript
// 设置
Obj.CancelSheetDoubleClick = true; // 或 false
使用示例:
javascript
// 在OnSheetBeforeDoubleClick事件中取消Excel双击操作
<script language="JScript" for="TANGER_OCX" event="OnSheetBeforeDoubleClick(arg1, arg2, arg3, arg4)">
// 自定义双击处理逻辑
console.log("Excel双击事件被触发");
// 取消默认的双击操作
TANGER_OCX.CancelSheetDoubleClick = true;
</script>
CancelSheetRightClick
说明:
布尔型;只写;设置是否取消Excel右键操作。该属性必须在事件OnSheetBeforeRightClick中使用。请参考事件OnSheetBeforeRightClick的介绍。
语法:
javascript
// 设置
Obj.CancelSheetRightClick = true; // 或 false
使用示例:
javascript
// 在OnSheetBeforeRightClick事件中取消Excel右键操作
<script language="JScript" for="TANGER_OCX" event="OnSheetBeforeRightClick(arg1, arg2, arg3, arg4)">
// 自定义右键处理逻辑
console.log("Excel右键事件被触发");
// 取消默认的右键操作
TANGER_OCX.CancelSheetRightClick = true;
// 设置自定义右键菜单
TANGER_OCX.CustomMenuStr = "插入行=1&插入图片=2&插入文字=3";
</script>
CancelWordRightClick
说明:
布尔型;只写;设置是否取消Word、WPS右键操作。该属性必须在事件OnWordBeforeRightClick中使用。请参考事件OnWordBeforeRightClick的介绍。
语法:
javascript
// 设置
Obj.CancelWordRightClick = true; // 或 false
使用示例:
javascript
// 在OnWordBeforeRightClick事件中取消Word右键操作
<script language="JScript" for="TANGER_OCX" event="OnWordBeforeRightClick(arg1, arg2)">
// 自定义右键处理逻辑
console.log("Word右键事件被触发");
// 取消默认的右键操作
TANGER_OCX.CancelWordRightClick = true;
// 设置自定义右键菜单
TANGER_OCX.CustomMenuStr = "插入表格=1&插入图片=2&插入文字=3";
</script>
CancelWordDoubleClick
说明:
布尔型;只写;设置是否取消Word、WPS双击操作。该属性必须在事件OnWordBeforeDoubleClick中使用。请参考事件OnWordBeforeDoubleClick的介绍。
语法:
javascript
// 设置
Obj.CancelWordDoubleClick = true; // 或 false
使用示例:
javascript
// 在OnWordBeforeDoubleClick事件中取消Word双击操作
<script language="JScript" for="TANGER_OCX" event="OnWordBeforeDoubleClick(arg1, arg2)">
// 自定义双击处理逻辑
console.log("Word双击事件被触发");
// 取消默认的双击操作
TANGER_OCX.CancelWordDoubleClick = true;
</script>
CancelPPTRightClick
说明:
布尔型;只写;设置是否取消PPT文档中的右键操作。该属性必须在事件OnPPTBeforeRightClick中使用。请参考事件OnPPTBeforeRightClick的介绍。
语法:
javascript
// 设置
Obj.CancelPPTRightClick = true; // 或 false
使用示例:
javascript
// 在OnPPTBeforeRightClick事件中取消PPT右键操作
<script language="JScript" for="TANGER_OCX" event="OnPPTBeforeRightClick(arg1, arg2)">
// 自定义右键处理逻辑
console.log("PPT右键事件被触发");
// 取消默认的右键操作
TANGER_OCX.CancelPPTRightClick = true;
</script>
综合使用示例
文件操作接管
javascript
// 接管文件操作
<script language="JScript" for="TANGER_OCX" event="OnFileCommand(cmd, canceled)">
switch(cmd) {
case 0: // 新建
console.log("用户点击了新建");
// 自定义新建逻辑
TANGER_OCX.CancelLastCommand = true;
break;
case 1: // 打开
console.log("用户点击了打开");
// 自定义打开逻辑
TANGER_OCX.CancelLastCommand = true;
break;
case 3: // 保存
console.log("用户点击了保存");
// 保存到服务器
TANGER_OCX_SaveEditToServerDisk();
TANGER_OCX.CancelLastCommand = true;
break;
default:
console.log("其他文件操作:", cmd);
}
</script>
Excel事件处理
javascript
// Excel双击事件处理
<script language="JScript" for="TANGER_OCX" event="OnSheetBeforeDoubleClick(arg1, arg2, arg3, arg4)">
console.log("Excel双击事件");
console.log("参数1:", arg1);
console.log("参数2:", arg2);
console.log("参数3:", arg3);
console.log("参数4:", arg4);
// 取消默认双击操作
TANGER_OCX.CancelSheetDoubleClick = true;
// 自定义双击处理
// 例如:打开单元格编辑模式
</script>
// Excel右键事件处理
<script language="JScript" for="TANGER_OCX" event="OnSheetBeforeRightClick(arg1, arg2, arg3, arg4)">
console.log("Excel右键事件");
// 取消默认右键操作
TANGER_OCX.CancelSheetRightClick = true;
// 设置自定义右键菜单
TANGER_OCX.CustomMenuStr = "插入行=1&插入列=2&删除行=3&删除列=4";
</script>
Word事件处理
javascript
// Word双击事件处理
<script language="JScript" for="TANGER_OCX" event="OnWordBeforeDoubleClick(arg1, arg2)">
console.log("Word双击事件");
// 取消默认双击操作
TANGER_OCX.CancelWordDoubleClick = true;
// 自定义双击处理
// 例如:打开文档属性对话框
</script>
// Word右键事件处理
<script language="JScript" for="TANGER_OCX" event="OnWordBeforeRightClick(arg1, arg2)">
console.log("Word右键事件");
// 取消默认右键操作
TANGER_OCX.CancelWordRightClick = true;
// 设置自定义右键菜单
TANGER_OCX.CustomMenuStr = "插入表格=1&插入图片=2&插入文字=3&格式化=4";
</script>
PPT事件处理
javascript
// PPT右键事件处理
<script language="JScript" for="TANGER_OCX" event="OnPPTBeforeRightClick(arg1, arg2)">
console.log("PPT右键事件");
// 取消默认右键操作
TANGER_OCX.CancelPPTRightClick = true;
// 自定义右键处理
// 例如:显示自定义菜单
</script>
属性分类总结
分类 | 属性 | 功能 | 类型 | 适用事件 |
---|---|---|---|---|
文件操作 | CancelLastCommand | 取消文件操作 | Boolean | OnFileCommand |
Excel事件 | CancelSheetDoubleClick | 取消Excel双击 | Boolean | OnSheetBeforeDoubleClick |
CancelSheetRightClick | 取消Excel右键 | Boolean | OnSheetBeforeRightClick | |
Word事件 | CancelWordDoubleClick | 取消Word双击 | Boolean | OnWordBeforeDoubleClick |
CancelWordRightClick | 取消Word右键 | Boolean | OnWordBeforeRightClick | |
PPT事件 | CancelPPTRightClick | 取消PPT右键 | Boolean | OnPPTBeforeRightClick |
事件处理流程
1. 事件触发阶段
javascript
// 事件触发时的处理流程
function handleEvent(eventType, args) {
console.log("事件类型:", eventType);
console.log("事件参数:", args);
// 根据事件类型进行相应处理
switch(eventType) {
case 'OnFileCommand':
handleFileCommand(args);
break;
case 'OnSheetBeforeDoubleClick':
handleSheetDoubleClick(args);
break;
case 'OnWordBeforeRightClick':
handleWordRightClick(args);
break;
// 其他事件类型...
}
}
2. 取消操作阶段
javascript
// 取消默认操作
function cancelDefaultOperation(operationType) {
switch(operationType) {
case 'file':
Obj.CancelLastCommand = true;
break;
case 'sheetDoubleClick':
Obj.CancelSheetDoubleClick = true;
break;
case 'sheetRightClick':
Obj.CancelSheetRightClick = true;
break;
case 'wordDoubleClick':
Obj.CancelWordDoubleClick = true;
break;
case 'wordRightClick':
Obj.CancelWordRightClick = true;
break;
case 'pptRightClick':
Obj.CancelPPTRightClick = true;
break;
}
}
3. 自定义处理阶段
javascript
// 自定义事件处理
function customEventHandling(eventType, args) {
// 取消默认操作
cancelDefaultOperation(eventType);
// 执行自定义逻辑
switch(eventType) {
case 'OnFileCommand':
// 自定义文件操作
customFileOperation(args);
break;
case 'OnSheetBeforeRightClick':
// 自定义Excel右键菜单
customSheetRightClickMenu();
break;
case 'OnWordBeforeRightClick':
// 自定义Word右键菜单
customWordRightClickMenu();
break;
}
}
注意事项
- 事件绑定:所有取消属性必须在相应的事件处理函数中使用
- 只写属性:这些属性都是只写属性,不能读取
- 事件时机:属性必须在事件触发时立即设置
- 自定义逻辑:取消默认操作后,需要实现自定义的处理逻辑
- 菜单设置:取消右键操作后,可以设置自定义右键菜单
- 错误处理:实现完善的错误处理机制
- 性能考虑:避免在事件处理中执行耗时操作
错误处理
javascript
// 事件处理错误处理
function handleEventError(eventType, error) {
console.error("事件处理错误:", eventType, error.message);
// 根据错误类型进行相应处理
switch(eventType) {
case 'OnFileCommand':
// 文件操作错误处理
console.log("文件操作失败,恢复默认行为");
Obj.CancelLastCommand = false;
break;
case 'OnSheetBeforeRightClick':
// Excel右键错误处理
console.log("Excel右键处理失败,恢复默认行为");
Obj.CancelSheetRightClick = false;
break;
// 其他错误处理...
}
}
最佳实践
- 事件绑定:在页面加载时正确绑定事件处理函数
- 错误处理:实现完善的错误处理机制
- 自定义逻辑:在取消默认操作后,实现完整的自定义逻辑
- 菜单设计:设计用户友好的自定义菜单
- 性能优化:避免在事件处理中执行耗时操作
- 测试验证:充分测试各种事件处理场景