如何在indesign中要求或包含脚本
How to require or include scripts in indesign?
如何加载另一个脚本文件并在其上运行方法?
我正在使用InDesign javascript,我不知道如何在同一个脚本中包含多个文件。
有三个选项:import、app.doScript和$. evalfile。我更喜欢$. evalfile。参见app.doScript vs $.evalFile
工作的例子:
C: ' script1.jsx
(function() {
$.evalFile(new File("/c/script2.jsx"));
var sFullName = g_script2.combineName("John", "Doe");
$.writeln(sFullName);
return "Success";
})();
C: ' script2.jsx
g_script2 = {
combineName: function(sFirstName, sLastName) {
return sFirstName + " " + sLastName;
}
};
如果script2 。jsx不是位于C盘的根目录,修改脚本1为它的真实位置。
解释:
- 脚本1创建并执行一个匿名函数以避免污染全局命名空间。如果不这样做,
- 脚本1执行脚本2。
- 脚本2创建一个对象并将其存储到全局变量
g_script2
中。 - 脚本1调用脚本2的
combineName
方法。这里需要注意的是,脚本的所有文件将共享相同的全局名称空间,这就是脚本1访问g_script2
的方式。然而,这也意味着函数或变量的两个文件不应该有相同的名称,除非它们被保存在一个全局对象中,就像这个例子一样。 - 运行
combineName
函数,返回字符串 脚本1打印名称,然后返回"Success"。因为它是堆栈上的最后一个对象,所以它作为脚本结果返回。
sFullName
将是全局的。ExtendScript提供了包含外部脚本的预处理器指令。该指令将目标文件的内容插入到语句所在位置的当前脚本文件中。因此,在语句之后,您将能够调用任何方法,就像它是当前脚本的方法一样:
#target InDesign;
// Include other script file that includes a function otherScriptFileMethod
#include "otherScriptFile.jsx"
// Now you can call the method as it was written in this script file
otherScriptFileMethod();
相关文章:
- 在包含脚本的地方注入HTML
- 如何在开发和生产中动态包含脚本
- "未终止的模板文字“;当文字包含脚本标记时出现语法错误
- AngularJS - 在所有指令呈现后包含<脚本>
- 添加一个包含<脚本>的 dom 元素
- 不能在 AppFog Node App 上包含脚本/css
- 如何在浏览器 JS 控制台中包含脚本时覆盖内容安全策略
- Azure 和 Node.js 和 JSDOM 计划任务 - 打开包含脚本的网页
- 解析包含脚本标记和 document.write 的 HTML 字符串
- 重新加载仅包含脚本的 DIV,然后执行脚本
- jQueryAjax包含脚本,即使页面是空的
- 通过JavaScript在页眉或HTML中动态包含脚本元素
- Firefox扩展在main.js文件中包含脚本
- 如何在document.write中包含脚本
- javascript正则表达式从包含脚本标记的字符串中获取url
- EJS在页面布局的开始/结束处包含脚本
- 将包含脚本的动态字符串插入HTML并动态执行它
- 解决在angular模板中包含脚本标签导致“同步XMLHttpRequest..”的问题;错误感觉很脏
- React "文档未定义;当包含脚本时
- 如何在indesign中要求或包含脚本