1

我正在使用 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 加载然后重置的建议,以便我可以正确运行代码块。希望这是有道理的谢谢

4

1 回答 1

1

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

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

于 2012-11-28T13:41:04.737 回答