我想在我的inappbrowser中注入一些代码,但不想等到整个页面和所有图像(可以很多)被加载,所以我想在loadstop事件上使用loadstart事件。 / p>
由于此事件在浏览器甚至更改为新URL并且dom准备就绪之前被触发,我想继续检查url和readystate,直到我可以注入我的代码。但是在setTimeout再次尝试之后它就会停止......我做错了什么,或者有更好的方法让dom准备好后立即注入我的脚本?谢谢!
browser = window.open('http://www.example.com/', '_blank','transitionstyle=fliphorizontal,toolbar=no,location=no');
browser.addEventListener('loadstart', loadstart);
var requestedURL = '';
function getUrl() {
browser.executeScript({code:"window.location.href"}, checkUrl);
}
function checkUrl(respons) {
if (respons[0] == requestedURL)
{
getReadyState();
} else {
setTimeout(getUrl,500);
}
}
function getReadyState() {
browser.executeScript({code:"document.readyState"}, checkReadyState);
}
function checkReadyState(respons) {
if (respons[0] == 'interactive' || respons[0] == 'complete')
{
browser.executeScript({file:"http://www.example.com/script.js"});
} else {
setTimeout(getReadyState,500);
}
}
function loadstart (event) {
requestedURL = event.url;
browser.executeScript({code:"window.location.href"}, checkUrl);
}