KViewerにおいて、リストビューのレコード詳細画面の体裁を整えるためにJavcaScriptで制御しています。
しかし、ページをリロードした際、JavaScriptが適応され無くなってしまします。リロード時でもJavaScriptを引き続き適応させるためにはどうすればよいのでしょうか。
言い方が正しいか分かりませんが、JavaScriptの適応タイミングは以下の通りです。
kv.events.view.detail.mounted
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 日が経過したので自動的にクローズされました。新たに返信することはできません。