【KViewer】リロード時のJavaScript反映について

 KViewerにおいて、リストビューのレコード詳細画面の体裁を整えるためにJavcaScriptで制御しています。

 しかし、ページをリロードした際、JavaScriptが適応され無くなってしまします。リロード時でもJavaScriptを引き続き適応させるためにはどうすればよいのでしょうか。

 言い方が正しいか分かりませんが、JavaScriptの適応タイミングは以下の通りです。

kv.events.view.detail.mounted

Sakkuさん

こんにちは。

 

画面リロードしたとしても再び「kv.events.view.detail.mounted」イベントに入りますので、その中で記述したJavaScriptの処理が動作するはずです。

挙動が変わるとなるとJavaScript自体の記述に問題があるか、kViewerそのものに原因がある可能性が考えられます。

JavaScriptを貼り付けていただければ、こちらでも検証ができるかもしれません。

もしくは、一度トヨクモさんに問合せされることもお勧めします。

koichiさん

コメントありがとうございます。

 

コード全体をお見せすることは出来ませんが、JavaScriptでは主に以下のようなフィールドの非表示処理を行っております。

(function() {
   "use strict";

kv.events.view.detail.mounted = [function(state){
var count = state.record['for_file'].value.length;
if (count === 0) {
kv.detail.getElementByCode('for_file').style.display = 'none';
} else {
document.getElementsByClassName('kv-pdf-element')[0].click();
kv.detail.getElementByCode('static_field_1').style.display = 'none';
kv.detail.getElementByCode('static_field_5').style.display = 'none';
...
}
}];
})();

この非表示処理に加えてテーブルの生成くらいしか行っておりません。

 

お手数おかけしますが、検証いただけると幸いです。

先の回答に少々誤りがありました。

イベントを「kv.events.record.mounted」に変更してみてください。

こちらのイベントであれば、詳細画面が完全に表示しきってから処理が走ります。

koichi さん

ご指摘いただいた箇所を修正したところリロード時にもjsがきちんと反映されました。

ありがとうございました。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。