我是InDesign脚本的新手,虽然我有使用Javascript的经验。 我创建了一个新的菜单项,您将在下面的脚本中看到,我打算用它来调用另一个脚本onclick。但是我遇到了一些问题,所以我决定删除菜单项并重新开始。但是在第10行,我收到了消息" undefined不是一个对象",我无法弄清楚它为什么会导致问题。
任何帮助将不胜感激。
//#targetengine "ImportFolder"
//var myMainMenu = app.menus.item("Main");
//var myCustomMenu = myMainMenu.submenus.item("Import Folder");
//var myCustomMenu = myMainMenu.submenus.add("Import Folder");
//var mySampleScriptAction = app.scriptMenuActions.add("onInvoke", function() {
//app.doScript(new File ("/C/Program Files (x86)/Adobe/Adobe InDesign CS6/Scripts/Scripts Panel/importFiles.jsx" ));});
//delete the menu
var myMainMenu = app.menus.item("Main");
try{
var myCustomMenu = myMainMenu.submenus.item("Import Folder");
myCustomMenu.remove();
}catch(myError){}
答案 0 :(得分:5)
尝试重新安装Indesign。如果脚本库dll丢失了注册,则可能导致所有脚本失败。
...等一下 - 您是否尝试使用Extendscript Toolkit中的此脚本?如果你是,你必须改变引擎。
此外,如果您的系统上有多个版本的CS,则需要确保使用与InDesign版本匹配的Extendscript Toolkit - 换句话说,使用EXTK CS6 for IND CS6。
要尝试的另一件事是从doscript命令中删除 new 。我喜欢把我的东西包裹在这样的函数中:
//run a script from the CS6 Script Panel Directory (be sure to add the file extension
function RunMyScript(whatscriptname){
app.doScript(File("/C/Program Files (x86)/Adobe/Adobe InDesign CS6/Scripts/Scripts Panel/" + whatscriptname));
}