Javascript UIWebView生成关于:追加iframe时的空白请求
这个简单的代码Javascript UIWebView生成关于:追加iframe时的空白请求,javascript,dom,iframe,uiwebview,uiwebviewdelegate,Javascript,Dom,Iframe,Uiwebview,Uiwebviewdelegate,这个简单的代码 var-iframe=document.createElement('iframe'); document.documentElement.appendChild(iframe) 通过UIWebView stringByEvaluatingJavascriptFromString注入 使用about:blank生成调用UIWebViewDelegate shouldStartLoadWithRequest。有趣的是,它仍然将mainDocumentURL设置为注入时存在的文档。对
var-iframe=document.createElement('iframe');
document.documentElement.appendChild(iframe)代码>
通过UIWebView stringByEvaluatingJavascriptFromString注入
使用about:blank
生成调用UIWebViewDelegate shouldStartLoadWithRequest
。有趣的是,它仍然将mainDocumentURL
设置为注入时存在的文档。对我来说,这意味着我不能在任何时候注入这样的代码——重新尝试shouldStartLoadWithRequest
显然会破坏很多东西。我可以拒绝所有关于以下内容的about:blank
请求(从shouldStart…
返回NO
),互联网上的代码片段可以毫无意义地完成这些任务,但这并不是一个系统性的解决方案
你知道为什么UIWebView
会有这种混乱和无用的行为吗?因为你没有在iframe
上设置src
属性,默认情况下它会加载about:blank
。如果要避免这种行为,可以在将iframe
添加到文档之前使用iframe.setAttribute
设置一个伪值,然后在shouldStartLoadWithRequest
Ok中取消伪请求,这样就不会造成混淆,甚至可以对其进行检测以使其有用。有点尴尬:-)