JavaScript 全局对象在 Acrobat 中被标记为常量

在 2019 年 2 月版的 Adobe Acrobat DC 中,全局命名空间中使用的 JavaScript 变量被标记为常量,并且不能在脚本的全局命名空间中当做变量名称使用。但是,您可以在局部命名空间中使用变量名称。

 

受影响的 Acrobat 版本

Acrobat DC、Acrobat 2017 和 Acrobat DC 2015 (Classic)

受影响的变量名称

无法在全局命名空间中修改或重新定义以下变量名称:

  • color
  • font
  • border
  • style
  • highlight
  • zoomtype
  • cursor
  • trans
  • position
  • scaleWhen
  • scaleHow
  • display
  • permission
  • submitFormUsageRights
  • fileSystem
  • encoding

示例脚本示例

示例 1:

如果在全局命名空间中定义以下代码,则会导致错误:

function position()

{

    //Perform some action

}

错误消息:TypeError: can't redefine non-configurable property 'color'

 

示例 2:

如果在全局命名空间中执行以下代码,它将不起作用:

var position = 10;

当您尝试再次访问 position 时,它并没有修改为 10;它仍然指向 Acrobat 使用的原始对象。

 

示例 3:

允许在局部范围内使用相同的变量。以下代码可正常工作:

(它将 hello 作为输出来进行打印。)

var example = new function() {

    this. position = function () {

        console.println("hello");

    };

}

example.color();



示例 4:

以下代码可将变量 position 的值修改为 10,因为它是在局部范围内定义的。

function example()

{

   var position= 10;

    console.println(position);

}

更快、更轻松地获得帮助

新用户?