WebViewDidFinishLoad 在 window.onload 之后执行
Posted
技术标签:
【中文标题】WebViewDidFinishLoad 在 window.onload 之后执行【英文标题】:WebViewDidFinishLoad executes after window.onload 【发布时间】:2018-08-04 23:35:22 【问题描述】:JS代码window.onload后的ios代码webViewDidFinishLoad
在 iOS 中 webViewDidFinishLoad 委托
我愿意
self.jsContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javascriptContext"];
self.jsContext[@"enterplorer_home"] = self;
在本地 html webView 中。我已经下载了 HTML。
window.onload = function()
....
var userInfo = enterplorer_home.getInfo()?JSON.parse(enterplorer_home.getInfo()):;
.....
我在 Safari 控制台中调试过。
一个错误告诉我:
ReferenceError:找不到变量:enterplorer_home
为什么iOS webViewDidFinishLoad 执行太晚了?
在执行window.onload
之前,我可以做些什么来设置enterplorer_home
。
【问题讨论】:
【参考方案1】:我不知道你到底在做什么,但一种解决方案是包装一个 requestAnimationFrame 并在那里执行 onload 里面的东西:
window.onload = function()
(function execute()
if (window.enterplorer_home)
....
var userInfo = enterplorer_home.getInfo()?JSON.parse(enterplorer_home.getInfo()):;
.....
else
window.requestAnimationFrame(execute);
)()
【讨论】:
以上是关于WebViewDidFinishLoad 在 window.onload 之后执行的主要内容,如果未能解决你的问题,请参考以下文章
phonegap - webViewDidFinishLoad 没有被调用
如何将 deviceToken 字符串传递给“webViewDidFinishLoad”?
无法让 webViewDidStartLoad 和 webViewDidFinishLoad 正常工作
UIWebViewDelegate:页面内导航期间未调用 webViewDidFinishLoad