【发布时间】:2012-05-13 01:21:17
【问题描述】:
这无疑是一个关于网页的更普遍的问题,但很容易通过 Google 内容进行演示。
在 Google 主页上输入某些搜索条件时,结果不会触发 webViewDidFinishLoad 方法。将彩色 Google 徽标替换为链接到功能页面的一些艺术作品时,也会出现同样的问题。
我怀疑由于某些 javascript 或 ajax 代码导致页面没有完全加载,那么有没有办法检测到这一点?
【问题讨论】:
这无疑是一个关于网页的更普遍的问题,但很容易通过 Google 内容进行演示。
在 Google 主页上输入某些搜索条件时,结果不会触发 webViewDidFinishLoad 方法。将彩色 Google 徽标替换为链接到功能页面的一些艺术作品时,也会出现同样的问题。
我怀疑由于某些 javascript 或 ajax 代码导致页面没有完全加载,那么有没有办法检测到这一点?
【问题讨论】:
这是因为 Google 使用 AJAX 来执行此操作,当有效地将新资源加载到 webview 中时会调用 webViewDidFinishLoad 委托方法 - 相当于在浏览器中加载页面,因为 Google 正在 AJAXing 这个东西,所以它不是'不会导致该方法被触发。
没有任何方法可以检测页面的某些部分何时加载(javascript、样式表或 ajax 响应)。
您可以做的一件事是在 web 视图上执行一行 javascript,告诉您页面的高度,通过等待页面高度发生变化,您可以知道何时发生结果,您将当搜索查询被修改时,必须设计一些其他的 - 当然更智能的检查,但我的想法适用于最初的谷歌徽标屏幕到第一个结果页面。
每隔几秒执行一次 JS 就足够了。
希望有帮助
【讨论】: