您好,根据您提供的代码来看,您是直接在menudata上进行splice操作,该操作会改变原数组信息,因此您需要提前维护好一个完整的右键菜单数组以及一个切除了索引21~26的数组:
- const originalArray = spread.contextMenu.menuData;
- const newArray = originalArray.slice(0, 21).concat(originalArray.slice(21 + 6));
复制代码
然后您再根据您的需要为您的menuData进行赋值:
- let oldOpenMenu = spread.contextMenu.onOpenMenu;
- spread.contextMenu.onOpenMenu = function (
- menuData,
- itemsDataForShown,
- hitInfo,
- spread
- ) {
- if (hitInfo.worksheetHitInfo.col < 2) {
- menuData = newArray;
- oldOpenMenu.apply(this, arguments);
- } else {
- menuData = originalArray;
- oldOpenMenu.apply(this, arguments);
- };
- };
复制代码
附件是我按照上述表述实现的一个demo,您可以参考一下
|
|