【问题标题】:Titanium How to get webview load to fire once and then resetTitanium如何让webview加载触发一次然后重置
【发布时间】:2012-11-07 05:43:01
【问题描述】:

我正在使用 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,所以我只能运行此代码一次。 我发现了一种对我有用的 hack,但我正在寻找一种更好的解决方案,我理解它的触发,因为它会触发 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 加载然后重置的建议,以便我可以正确运行代码块。 希望这是有道理的谢谢

【问题讨论】:

  • 你的所作所为很奇怪,看起来不标准。 load 事件仅在加载内容时触发。你为什么要保留一个布尔值来跟踪这个?为什么只需要在加载时添加sidebar 视图?

标签: webview load titanium


【解决方案1】:

是的,这是因为您正在加载的页面,就像几乎所有门户主页一样,几乎完全由对其他页面和脚本等的 ajax 调用组成。这将导致您的加载事件触发,然后开火,然后再开火,直到所有东西都装满为止。

我想解决这个问题的一种方法是侦听 load 事件并设置一些间隔,如果通过,就会杀死侦听器并继续。

【讨论】:

    猜你喜欢
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 2015-07-30
    • 2019-03-12
    • 2011-12-02
    • 2023-03-03
    相关资源
    最近更新 更多