Joestar.Xu 发表于 2023-6-30 09:19:19

visibleContext控制右键菜单复制选项是否隐藏

本帖最后由 Joestar.Xu 于 2023-6-30 09:20 编辑

在某些情况下,我们需要限制用户进行右键菜单中的复制操作的行为,除了使用itemsDataForShown和hitInfo来联合实现以外,还可以通过visibleContext来进行控制。



代码如下:


window.onload = function () {
let designerConfig = JSON.parse(
    JSON.stringify(GC.Spread.Sheets.Designer.DefaultConfig)
);

designerConfig.commandMap = {};

const commandNames = [
    "designerPasteAll",
    "pasteFormula",
    "designerPasteValues",
    "designerPasteFormatting",
    "pasteValuesFormatting",
    "pasteFormulaFormatting",
    "contextMenuPaste",
];
commandNames.forEach((commandName) => {
const command = GC.Spread.Sheets.Designer.getCommand(commandName);
command.visibleContext = "showPasteItem";
    designerConfig.commandMap = command;
});

let designer = new GC.Spread.Sheets.Designer.Designer(
    "gc-designer-container",
    designerConfig
);

let spread = designer.getWorkbook();

let sheet = spread.getActiveSheet();

designer.setData("showPasteItem", true);

document.querySelector("#button1").addEventListener("click", function () {
    designer.setData("showPasteItem", true);
});

document.querySelector("#button2").addEventListener("click", function () {
designer.setData("showPasteItem", false);
});
};

在上面的代码中我设置了一个showPasteItem的属性,将它的值赋给了需要设置的命令的visibleContext。

这样就可以通过两个按钮来实现是否显示右键中的复制选项。

效果图如下:



页: [1]
查看完整版本: visibleContext控制右键菜单复制选项是否隐藏