javascript - 当添加 iframe 时,UIWebView 产生 about:blank 请求
这段简单的代码
var iframe=document.createElement('iframe'); document.documentElement.appendChild(iframe);
通过 UIWebView stringByEvaluatingJavascriptFromString 注入会触发 UIWebViewDelegate shouldStartLoadWithRequest 调用,并带有 about:blank。有趣的是,它的 mainDocumentURL 仍然设置为注入时的文档。对我来说,这意味着我不能随时注入这样的代码——重新进入 shouldStartLoadWithRequest 明显会破坏很多东西。我可以拒绝所有 about:blank 请求(从 shouldStart... 返回 NO),而互联网上的代码片段也是如此,无知地这么做,但这几乎不是一个系统性的解决方案。
有人知道为什么 UIWebView 会有这种令人困惑且无用的行为吗?
答案#1
由于你没有在你的 iframe 上设置 src 属性,它默认会加载 about:blank。如果你想避免这种行为,你可以在将 iframe 添加到文档之前使用 iframe.setAttribute 设置一个虚拟值,然后在 shouldStartLoadWithRequest 中取消这个虚拟请求。