Titanium如何让webview加载一次然后重置

时间:2012-11-19 10:04:05

标签: webview load titanium

我正在使用webview加载来检测页面何时被加载但是我需要它只发射一次但是它多次触发我已经提出了一个解决方案以使其触发一次,但这只会发生一次和一次只有我每次加载页面时都需要它才能触发但只有一次示例。

webviewload = true;
webview.addEventListener('load', function() {

    if(webviewload){

        //run code to add stuff to webview this will run once
            webview.remove(oldsidebar);
            webview.add(newsidebar);
            webviewload = false;
       }

});

以上工作适用于一个webview加载但如果你再次运行它显然设置为false所以我只能运行一次这个代码。 我找到了一个对我有用的黑客,但我正在寻找一个更好的解决方案我理解它的解雇因为它会触发webview上的每个元素加载广告等。

webviewload = true;
webview.addEventListener('load', function() {

    if(webviewload){

        //run code to add stuff to webview this will run once
            webview.remove(oldsidebar);
            webview.add(newsidebar);
            webviewload = false;
       }

       setTimeout(function(){
        webviewload = true;
    },5000)

});

确定以上工作,但如果页面加载时间超过5秒等不理想我会遇到问题。 任何人都可以给我一个关于如何解除webview加载然后重置的建议,这样我就可以正确运行一段代码。 希望这是有道理的谢谢

1 个答案:

答案 0 :(得分:1)

是的,这是因为您加载的页面几乎与任何门户网站主页一样,几乎完全包含对其他页面和脚本等的ajax调用。这将导致您的加载事件触发,然后开火,直到一切都装满为止。

我认为解决这个问题的方法之一就是监听load事件并设置一些间隔,如果传递将会杀死侦听器并继续。