JavaScript global objects are marked as constants in Acrobat

With the February 2019 release of Adobe Acrobat DC, the JavaScript variables used in global namespace are marked as constants and cannot be used as variable names in the global namespace in your scripts. However, you can use the variable names in your local namespace.

 

Impacted Acrobat versions

Acrobat DC, Acrobat 2017, and Acrobat DC 2015 (Classic)

Impacted variable names

The following variable names cannot be modified or redefined in the global namespace:

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

Sample script examples

Example 1:

If you define the following code in the global namespace, it'll result in an error:

function position()

{

    //Perform some action

}

The error message: TypeError: can't redefine non-configurable property 'color'

 

Example 2:

If the following code is executed in global namespace, it won't work:

var position = 10;

If you try to access position again, it won't be modified to 10; it's still pointing to the original object as used by Acrobat.

 

Example 3:

Use of the same variable in local scope is allowed. The following code works fine:

(It prints hello as output.)

var example = new function() {

    this. position = function () {

        console.println("hello");

    };

}

example.color();



Example 4:

The following code modifies the value of the variable position to 10, as it is defined in local scope.

function example()

{

   var position= 10;

    console.println(position);

}

Get help faster and easier

New user?