【问题标题】:Page reload (Webview.loadUrl) results in Javascript not being (fully) processed页面重新加载 (Webview.loadUrl) 导致 Javascript 未被(完全)处理
【发布时间】:2011-06-01 20:14:32
【问题描述】:

以下在 javascript 呈现后获取页面的 HTML 内容的技巧非常有效,当放置在 WebViewonNewPicture()PictureListener 中时:

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

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

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

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

这似乎暗示了一个初始化问题(在我的代码中)、WebView 中的一个错误,或者是一些经验丰富的 Web 程序员众所周知但我还不熟悉的缓存原理。

但它变得更加有趣:随后对WebView.loadUrl() 的调用导致上述失败多次 (3-10) 次,直到...页面再次奇迹般地完全呈现! (然后又多次失败,依此类推)

这可能表明时间问题?

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

【问题讨论】:

  • 您正在开发什么版本的android以及什么设备?这里至少有十个类似的问题没有答案,这是Android中的一个真正的错误,有点可怜,甚至是一个错误!让我们深入了解一下,Bug 报告可以在这里提交groups.google.com/group/android-developers

标签: javascript android webview android-webview


【解决方案1】:

您必须在页面加载后注入 javascript!花了我很长时间才弄明白

【讨论】:

    猜你喜欢
    • 2013-10-31
    • 2012-08-02
    • 2014-03-25
    • 2014-01-17
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多