FAQ:$p.events.on_editor_loadを複数設定できるようにしたい
## 回答
以下いずれかの方法で実現できます。
1. 実行したい処理を配列に追加し、$p.events.on_editor_loadで配列に格納した処理を順次呼び出す。
1. 実行したい処理を一つのファンクションとして定義し、$p.events.on_editor_loadで順次ファンクションを呼び出す。
---
## 概要
複数のスクリプトファイルに渡って$p.events.on_editor_loadを複数書くとスクリプトが上書きされてしまい、一番最新のものしか動作しなくなります。回避策として以下の2つの方法があります。
1. 実行したい処理を配列に追加し、$p.events.on_editor_loadで配列に格納した処理を順次呼び出す。
1. 実行したい処理を一つのファンクションとして定義し、$p.events.on_editor_loadで順次ファンクションを呼び出す。
なお、$p.events.on_editor_loadの他、$p.events.on_grid_loadやその他[イベント発火系スクリプト](/ja/manual/script-events-after-send)について同様の現象が発生しますので、本内容で回避可能です。
### 1. 実行したい処理を配列に追加し、$p.events.on_editor_loadで配列に格納した処理を順次呼び出す
## サンプルコード
##### JavaScript
```
//配列を定義
$p.events.on_editor_load_arr = [];
```
##### JavaScript
```
//処理1を追加
$p.events.on_editor_load_arr.push(function() {
alert("test1"); //任意の処理
});
```
##### JavaScript
```
//処理2を追加
$p.events.on_editor_load_arr.push(function() {
alert("test2"); //任意の処理
});
```
##### JavaScript
```
//実行
$p.events.on_editor_load = function() {
for (let i = 0; i < $p.events.on_editor_load_arr.length; i++) {
$p.events.on_editor_load_arr[i] ();
}
}
```
プリザンターの[スクリプト](/ja/manual/table-management-script)には以下のように登録します。
![image](https://pleasanter.org/binaries/8707ed5134484092867fa573d007c21d)
ID=1で「配列の定義」のスクリプト、ID=4に「実行」のスクリプトを登録します。ID=2、ID=3には実行したい処理を追加するスクリプトをそれぞれ登録します。この例では2つの処理を追加していますが、ID=1、ID=4の間に記載することでいくつでも処理を追加することができます。
### 2. 実行したい処理を一つのファンクションとして定義し、$p.events.on_editor_loadで順次ファンクションを呼び出す
## サンプル
##### JavaScript
```
//処理1を定義
$p.ex.myFunc1 = function() {
alert("test1"); //任意の処理
}
```
##### JavaScript
```
//処理2を定義
$p.ex.myFunc2 = function() {
alert("test2"); //任意の処理
}
```
##### JavaScript
```
//実行
$p.events.on_editor_load = function() {
$p.ex.myFunc1();
$p.ex.myFunc2();
}
```
プリザンターの[スクリプト](/ja/manual/table-management-script)には以下のように登録します。
![image](https://pleasanter.org/binaries/716cc574030545e38267d38edcb6b825)
ID=1,2で定義したファンクションのスクリプトを登録し、。ID=3で「実行」のスクリプトを登録します。この例では2つの処理を追加していますが、ID=3の前に記載することでいくつでも処理を追加することができます。