页面重新加载(Webview.loadUrl)导致Javascript未被(完全)处理

时间:2011-06-01 20:14:32

标签: javascript android webview android-webview

在javascript呈现后获取网页HTML内容的以下技巧非常适合放置在onNewPicture() WebView PictureListener的{​​{1}}中:

browser.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');"); 

但是,出于某种原因,它仅在第一次加载页面时起作用。也就是说,应用程序的第一个这样的WebView.loadUrl()调用获得了一个完全呈现的页面版本。

此后,如果我重新加载/刷新页面(相同的网址),HTMLOUT.showHTML()的输出似乎是页面呈现之前的原始HTML + javascript

奇怪的是视觉,在WebView本身,所有内容都在那里! (虽然经过了很长时间的延迟......我可以看到WebView的沙漏旋转,也许Javascript需要很长时间才能重新处理?)

这似乎暗示了初始化问题(在我的代码中),WebView中的错误,或者某些缓存原则,这些原则对于有经验的Web程序员来说是众所周知的,但我还不熟悉它。

然后它变得更有趣:后续调用WebView.loadUrl()导致上述失败多次(3-10)次,直到......页面奇迹般地完全呈现! (然后再次发生多次失败,等等)

这可能表明时间问题?

有关如何调试或解决此问题的任何建议吗?

1 个答案:

答案 0 :(得分:1)

你必须在页面加载后注入javascript!让我永远想通了