Sen*_*ful 13 iphone iframe uiwebview
在[webView:shouldStartLoadWithRequest:navigationType:]事件中,如何判断加载内容的iframe与整个页面加载内容之间的区别?看起来两者都用相同的参数调用同一个事件,唯一的区别是要加载的URL,所以没有办法分辨两者之间的区别.
我想到了几种方法来区分它们:
YES在[webView:shouldStartLoadWithRequest:navigationType:]事件中返回来正常加载页面,并且一旦加载完成,看看WebView的URL是否发生了改变...如果这样做意味着它是页面重定向,如果不是这样的话意味着它是一个加载的iframe.最好的方法是什么?你能想到我没有想过的任何方法吗?iframe有一个特殊的事件/属性,我可以使用JavaScript操作来帮助我吗?
谢谢
更新:它不像检查navigationType那么简单.虽然单击链接打开新页面将显示为navigationType = 0,但JavaScript重定向(更改window.location)将显示为navigationType = 5. iframe加载也显示为navigationType = 5.因此,当navigationType = 5,您不知道整个页面是通过JavaScript更改了URL还是只是在同一页面上加载了iframe.
小智 38
(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
BOOL isFrame = ![[[request URL] absoluteString] isEqualToString:[[request mainDocumentURL] absoluteString]];
}
Run Code Online (Sandbox Code Playgroud)
我只是用这个方法:
通过在[webView:shouldStartLoadWithRequest:navigationType:]事件中返回YES来正常加载页面,并且一旦加载完成,看看WebView的URL是否发生了改变...如果这样做意味着它是页面重定向,如果不是它可能意味着它是一个加载的iframe.
| 归档时间: |
|
| 查看次数: |
10813 次 |
| 最近记录: |