dom准备好后,Phonegap / cordova inappbrowser执行脚本

时间:2015-06-29 15:40:02

标签: cordova phonegap-plugins inappbrowser

我想在我的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);
}

0 个答案:

没有答案