Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
こんにちは。
Extension内でjquery関数内から、qvw上の複数リストボックスを選択した状態にしたいのですが
以下ソースでWebviewを立ち上げると、二つのリストボックス(オブジェクトID-hoge1とhoge2)までしか選択されません。
(それぞれのSelectTextsの間に、setIntervalやsleep,wait等も差し込んでみましたが、同じ結果となります)
そもそもQvオブジェクトの仕様でできない等あるかもしれませんが、解決策をご存知の方がいらっしゃいましたら、ご教授ください。
===
$(function(){
...
// ドキュメント取得(※exstension_init()内で定義)
// test_doc = Qv.GetCurrentDocument();
//リストボックス オブジェクトID[hoge0~5]を取得
var test_qv_objs =[];
test_qv_objs[0] = test_doc.GetObject("hoge0");
test_qv_objs[1] = test_doc.GetObject("hoge1");
test_qv_objs[2] = test_doc.GetObject("hoge2");
test_qv_objs[3] = test_doc.GetObject("hoge3");
test_qv_objs[4] = test_doc.GetObject("hoge4");
test_qv_objs[5] = test_doc.GetObject("hoge5");
//オブジェクトID[hoge1~5]のリストボックスを、それぞれの引数値で選択した状態にする
test_qv_objs[1].Data.SelectTexts(["A"]);
test_qv_objs[2].Data.SelectTexts(["B"]);
test_qv_objs[3].Data.SelectTexts(["C"]);
test_qv_objs[4].Data.SelectTexts(["D"]);
test_qv_objs[5].Data.SelectTexts(["E"]);
...
});
===
(追記)
唯一、できそうであったのが以下のcallbackを用いたやり方です。
alertを表示させ、かつ、間隔を空けてalertの完了ボタンを押下...していけば全て選択された状態でリストボックスが表示されました。
ならばここでsleep系の処理をと思い試しましたが、結果は上記質問で挙げた内容と同じとなり今に至ります...)
===
test_qv_objs[1].Data.SelectTexts(["A"]);
test_qv_objs[1].callbackFn = function(){
test_qv_objs[1].callback = null;
test_qv_objs[2].Data.SelectTexts(["B"]);
test_qv_objs[2].callbackFn = function(){
test_qv_objs[2].callback = null;
...//以下、同ソースをtest_qv_objs[5]まで記載
}
}
===