【问题标题】:Which ECMAScript standards comply Adobe's ExtendScript implementation? (if any)哪些 ECMAScript 标准符合 Adob​​e 的 ExtendScript 实施? (如有)
【发布时间】:2013-06-17 20:33:23
【问题描述】:

我是一名 JavaScript 开发人员,刚刚开始深入研究 Adobe's ExtendScript 技术,旨在提高我的企业在 Illustrator PDF 表单生成方面的许多日常任务的工作效率和工作流程。

首先,我认为它是一些 ECMAScript 标准的实现,并添加了文档对象模型的属性实现、用于访问文件系统的 API 和其他一些东西。我希望 Creative Suite 的最新版本 (CS6) 实现了 ECMAScript 5

我的第一个惊喜是在 Internet 上没有找到任何关于 ExtendScript 引擎实现细节的参考资料。我的第二个惊喜是,在查询 Array.prototype 获取某些 ECMAScript 5 方法时,发现它是 undefined,这让我怀疑实现的标准合规性。

如果它符合任何 ECMAScript 标准和哪个版本,任何人都可以提供有关该实现细节的任何参考吗?

非常感谢。

【问题讨论】:

  • 您链接的页面说它是 Javascript。诚然,它可能不完全符合标准,但仍然......你为什么不直接问他们这个问题呢?毕竟,他们可能是自己的技术专家。
  • @Áxel 不确定,但我猜它使用的是 JavaScript 1.6。例如支持 XML/E4X
  • 谢谢你们。 @RobertHarvey,你知道我在哪里可以问他们吗? ;)
  • 哇@Mike'Pomax'Kamermans,没找到

标签: javascript adobe extendscript


【解决方案1】:

如果您查看After Effects CS6 Scripting Guide,它会说:

After Effects 脚本引擎支持第 3 版的 ECMA-262 标准,包括它的符号和词法 约定、类型、对象、表达式和语句。 ExtendScript 还实现了 E4X ECMA-357 规范,该规范 定义对 XML 格式数据的访问。

我想 Adob​​e Collection 的其余部分都是一样的。

【讨论】:

  • 酷@Matthew Chung!在其他产品的脚本指南中找不到此内容。我什至发现对 EX4 实现细节的部分支持的模糊引用。似乎公平地说 ES3 是官方保证可以工作的——去他妈的,因为我已经发现了几个实现错误,这使得它与 ES3 不兼容,尽管 xD
  • 别忘了向 Adob​​e 提出正式请求,以便我们可以一直编写脚本进入 21 世纪。
【解决方案2】:

您可以通过包含this polyfill 的修改版本将ECMAScript 5 数组方法添加到ExtendScript。您需要进行的一项修改是在array.generics.js 的最后,删除if (document) 范围内的代码块。 (第 583 行附近)。

【讨论】:

  • @j-peterson 有用的提示!但这不是问题的答案,因此您应该将其添加为评论而不是答案
  • 我使用 es5-shim.js polyfill 来获取 forEach、isArray 等。创建一个“lib”文件夹,放入 shim,然后将其添加到脚本顶部某处:var scriptsFolder = (new File($.fileName)).parent;$.evalFile(scriptsFolder + "/lib/es5-shim.js");
猜你喜欢
  • 1970-01-01
  • 2014-01-07
  • 1970-01-01
  • 1970-01-01
  • 2019-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
相关资源
最近更新 更多