上図の様に、Aアプリにあるボタン(Bアプリへ)をクリックすると、Bアプリへ移行するとともに、Aアプリの番号を、Bアプリの番号へ反映させているのですが、
∧前のレコードに移動する、∨次のレコードに移動するで、別のレコードを表示させ、
ボタン(Bアプリへ)をクリックしても、最初に開いた番号しかBアプリに反映されません。
∧前のレコードに移動する、∨次のレコードに移動するを行った場合、今表示されているデータを反映する処理はどの様にするのでしょうか。
上図の様に、Aアプリにあるボタン(Bアプリへ)をクリックすると、Bアプリへ移行するとともに、Aアプリの番号を、Bアプリの番号へ反映させているのですが、
∧前のレコードに移動する、∨次のレコードに移動するで、別のレコードを表示させ、
ボタン(Bアプリへ)をクリックしても、最初に開いた番号しかBアプリに反映されません。
∧前のレコードに移動する、∨次のレコードに移動するを行った場合、今表示されているデータを反映する処理はどの様にするのでしょうか。
こんにちは。
「∧前のレコードに移動する、∨次のレコードに移動するを行った場合、・・・」ということは詳細画面ですよね?
すると、「レコード詳細画面の表示後イベント」が走りますし、
ボタン設置されているということはこのイベント内にボタン設置については記述していると思われるので、
表示されているレコードのデータは特に何もしなくても切り替わるはずです。
Bアプリをクリックしたときどのように「アプリの番号?」を渡していますか?
渡している部分のコードを個人情報など問題ない範囲で貼り付けていただけるとなにか分かるかもしれません。
※もし「アプリの番号」がアプリIDのことを指しているのだとしたら、「∧前のレコードに移動する、∨次のレコードに移動するを行った場合、」には変わらないですね。
//Aアプリにある、Bボタンをクリックした時の動作です。
btn1.on('click',function(e){
var _window = window.open("/k/Bアプリ番号/edit");
_window.addEventListener("load", function(){
window.postMessage(_window.kintone !== null, location.origin);
});
window.addEventListener("message",function(ex){
var _kintone = _window.kintone;
var _record = _kintone.app.record.get();
_record.record.番号.value = record.番号.value;
_record.record.番号.lookup = true;
_kintone.app.record.set(_record);
});
});
コピペして
btn1.onではなくてaddEventListener使ったのと(私はjQuery使わないので)
_record.record.番号.value = record.番号.value;
この行の右辺を私の環境(頭にevent.をつけただけ)に合わせて試してみましたが、私の環境だと問題なく動きます。
「∧前のレコードに移動する、∨次のレコードに移動する」のあとにボタンクリックで番号も切り替わりますし、ルックアップもうごきます。
ちなみになんですが、デバッグってどんなことやりましたか??
初心者のもので、デバックの方法もままならい状態です。
申し訳ございません。
addEventListenerを使用されたとの事ですが、単純にbtn1.onの所を差替えただけでしょうか?
あの・・・、「申し訳ございません」は、いらないですよ(汗)
全然怒っていませんし、私が責めているみたいじゃないですか(汗)
kintone_TS44さんが試したデバッグ内容を聞いたらなにか解決のヒントになるかもと思ったので、聞いてみました。
なので、全然怒ってませんよ!
というわけで、ただ気になっただけなのです。トゲがある言い方に感じられていたら、こちらこそ申し訳ありません。
さて、addEventListenerについてですが、
単純に、jQueryの on をJavaScriptの addEventListener に差し替えただけですよ。
それより気になるのは、
record.番号.value、アプリAのレコード切り替えの前後、ボタン押す前、ボタン押した後、何が入ってるんでしょう?
という点です。そういったタイミングにconsole.logを仕込んで確認すると良いと思います。(コレがデバッグですヨ)
デバッグのやり方は
動かない-そんな時はデバッグをしてみよう-入門編
デバッグ JavaScript
とかでやってみてください。