いつもお世話になります。
下記のコードはブックマークレットとして実行しているものですが、
親ウィンドウのdomからコード番号(cd)を順次読み込み、
コード番号に関連する子ウィンドウを呼び出して子ウィンドウ上のdomを読み込んで
コンソールに表示させるものですが、下記のコードではfor文のi=5に該当する
domしか実行されません。
これはfor文の中でsettimeoutを実行した場合に発生する現象かと思われますが、
(参考 https://lealog.hateblo.jp/entry/2014/01/16/005438)
どのようにすれば、下記のコードが正しく実行されるか、
他のHPを見ても見当が付かなかったので、質問させていただきます。
よろしくお願いいたします。
javascript: (function () {
var rdata = window.frames[2].document.getElementsByClassName('R_DATA');
for (var i = 0; i < 5; i++) {
var cd = rdata[i].cells[2].childNodes[1].innerText;
var u = "https://hogehoge.com/data2.do?cmn.cd=" + cd;
w = window.open(u);
function readStateCheck() { if (w.document.readyState == "complete") { console.log(w.document.body.childNodes[1].innerText); } else { setTimeout(readStateCheck, 100); } }; setTimeout(readStateCheck, 100); }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/05 08:21
2018/10/05 08:23 編集
2018/10/05 08:26
2018/10/05 08:47