gpt4 book ai didi

javascript - 如何删除(子)菜单及其存在的所有痕迹?

转载 作者:行者123 更新时间:2023-11-29 21:23:58 25 4
gpt4 key购买 nike

使用代码

#targetengine "mine"
var mainmenu = app.menus.items("$ID/Main");
var menu = mainmenu.submenus.add("Test");

我在 InDesign 的菜单中添加了一个子菜单,后来我删除了

menu.remove();
delete menu;

不幸的是,当我尝试重新创建菜单时,没有任何反应,因为 InDesign 似乎认为它仍然存在 - 直到我重新启动 InDesign,之后菜单出现(但没有添加任何项目)。我如何才能永久删除菜单,以便以后无需重新启动 InDesign 即可重新创建它?该菜单仍然显示在 InDesign 的菜单首选项中(更糟糕的是,自从我尝试将“Test”和“&Test”作为菜单名称以来,甚至出现了两次),我也想修复它...

编辑 事实证明,这种奇怪的行为只会在通过 InDesign 的脚本面板执行脚本时发生,而不是通过启动或 ExtendScript 工具包。但是,菜单条目在删除后仍然存在。

最佳答案

很可能您在之前的尝试中创建了大量对菜单对象的引用,并且它是一个持久引擎,引用保持事件状态。

重新启动 InDesign,它应该可以完成。

这是我根据附加脚本制作的一些屏幕截图。 isValid 根据脚本的阶段和菜单的存在从 true 到 false 变化。

The menu has been added and is valid The menu has been removed and is no longer valid

#targetengine "mine"
var mainmenu = app.menus.item("$ID/Main");

var menu = mainmenu.submenus.item("Test");
!menu.isValid && menu = mainmenu.submenus.add("Test", LocationOptions.before, mainmenu.submenus.item("$ID/#Keyboard_Help"));
alert( menu.isValid );
//comment ON/OFF to remove or not the menu
menu.remove();

alert( menu.isValid );

关于javascript - 如何删除(子)菜单及其存在的所有痕迹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37985733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com