わからない - しかし、それは
NOTEを助ける可能性があります - 私は、しかし、私は一般的にこの種のコードを好きではない、私はもともと私がMutationObserver使うだろうと思いました私は、上記のような何かをしなければならなかったiframeのcontentDocumentを待っている間、私は突然変異のオブザーバーを付ける前に、コンテンツが読み込みを開始したことを示す - そして、私はhead
要素が半分の時間に繋がれていないのを見逃すだろう!
のFirefoxのiframeにmozbrowserloadstartイベントを持っている - そうではないのすべての有用な他のどこが、それはちょうど、Firefoxの
function limitedRetryWithDelay(count, delay, tester, cb) {
var res = tester();
if(res) {
cb(res);
} else {
if (count > 0) {
setTimeout(function() {
limitedRetryWithDelay(count - 1, delay, tester, cb);
}, delay);
}
}
}
// next 3 lines is just how I tested it - you'll need a reference to the iframe node instead for "tgt"
var tgt = document.createElement('iframe');
document.body.appendChild(tgt);
tgt.src = '/index.html?_=' + Math.random() + '_' + Math.random();
// end testing code
// try every 10ms for 5 seconds because (500 * 10 = 5000ms)
limitedRetryWithDelay(500, 10, function (e) {
return tgt.contentDocument && tgt.contentDocument.location != 'about:blank' && tgt.contentDocument.head;
}, function(head) {
console.log('head is', head);
});
ところで、あなたが何かをする前に存在することがhead
を待つ必要はないかもしれませんそれは、「現在のページ」とは何の関係もいないよう文書では、あなたも本当にcontentDocument
limitedRetryWithDelay(500, 10, function (e) {
return tgt.contentDocument && tgt.contentDocument.location != 'about:blank' && tgt.contentDocument;
}, function(doc) {
console.log('document is', doc);
});
のを待つことができるかもしれ、beforeunloadは、それが 'MutationObserver'上を追加することが可能かどうかわからない –
無関係です'if rame.contentDocument'だが、それは何かが助けることができる( '頭'がドームに追加されるのを待ってから、あなたのことをする) –
私はちょうど私が見つけることができ、onbeforeloadとonload私は仕事を見た唯一の二人です。私はそれが可能ではないと思っていますが、努力を断念する前に確かめたいと思っていました。 – Cggart