Adobe Acrobat DC の 2019 年 2 月のリリースから、グローバル名前空間で使用される 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); } |