- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
到目前为止,我发现的唯一区别是:如果 app.doScript
运行的脚本返回错误,则错误的文件和行号将被以下文件和行号覆盖: app.doScript
调用。
还有其他我应该了解的差异吗?
以下示例代码演示了上述差异:
首次运行 InDesign:
c:
cd "C:\Program Files\Adobe\Adobe InDesign CS6 Server x64"
InDesignServer.com -port 12345
pause
接下来创建一个批处理文件来运行脚本:
c:
cd "C:\Program Files\Adobe\Adobe InDesign CS6 Server x64"
sampleclient -host localhost:12345 -server "C:/doscript_vs_evalfile/call_doScript.jsx"
pause
这是“call_doScript.jsx”,它将调用app.doScript。
try {
app.doScript(new File("/c/doscript_vs_evalfile/called_by_doScript.jsx"));
"Success";
}
catch (e) {
var sError = "Encountered " + e.name + " #" + e.number + " at line " + e.line + " of file " + e.fileName + "\n" + e.message;
app.consoleout(sError);
sError;
}
这是“used_by_doScript.jsx”,由前面的脚本调用:
app.consoleout("Running called_by_doScript.jsx");
// Produce error
var a = b;
运行批处理文件,结果如下:
02/25/13 13:30:03 INFO [javascript] Executing File: C:\doscript_vs_evalfile\call_doScript.jsx
02/25/13 13:30:03 INFO [javascript] Executing File: C:\doscript_vs_evalfile\called_by_doScript.jsx
02/25/13 13:30:03 INFO [script] Running called_by_doScript.jsx
02/25/13 13:30:03 INFO [script] Encountered ReferenceError #2 at line 2 of file /c/doscript_vs_evalfile/call_doScript.jsx
b is undefined
请注意,上面的错误是不正确的。该错误是由 Called_by_doScript 的第 3 行引起的,而不是由 call_doScript 的第 2 行引起的。
现在修改脚本以使用 $.evalFile,我们得到以下结果:
02/25/13 13:32:39 INFO [javascript] Executing File: C:\doscript_vs_evalfile\call_evalFile.jsx
02/25/13 13:32:39 INFO [script] Running called_by_evalFile.jsx
02/25/13 13:32:39 INFO [script] Encountered ReferenceError #2 at line 3 of file /c/doscript_vs_evalfile/called_by_evalFile.jsx
b is undefined
请注意,现在错误已报告在正确的位置。
<小时/>编辑:
我发现了稀疏的文档。它并没有真正回答我的问题,但它确实描述了不同的可选参数。
doScript: Adobe InDesign CS6 Scripting Guide: JavaScript ( direct link )
请参见第 16 页,“使用 doScript 方法”
评估文件: Javascript Tools Guide: Adobe Creative Suite 5
参见第219页
最佳答案
$.evalFile 是 ExtendScript 功能,而 app.doScript 由 InDesign 实现。
$.evalFile 可以
app.doScript可以
但是...
此外,正如您所发现的,错误处理有所不同。密切关注异常情况...
关于adobe - app.doScript 和 $.evalFile 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15074220/
类名在 EVALFILE 之后的范围内可用,而文档可能另有说明。EVALFILE 的文档states : Slurps the specified file and evaluates it. Beh
到目前为止,我发现的唯一区别是:如果 app.doScript 运行的脚本返回错误,则错误的文件和行号将被以下文件和行号覆盖: app.doScript 调用。 还有其他我应该了解的差异吗? 以下示例
我是一名优秀的程序员,十分优秀!