我正在尝试在webViewDidFinishLoading中运行以下代码:
NSString* len = [self.webView stringByEvaluatingJavaScriptFromString:@"document.links.length"];
NSInteger lenVal = [len intValue];
for( int i=0; i<lenVal; ++i ) {
NSString *value = [[NSNumber numberWithInt: i] stringValue];
NSString *link = @"document.links[";
link = [link stringByAppendingString:value];
link = [link stringByAppendingString:@"]"];
NSString* links = [self.webView stringByEvaluatingJavaScriptFromString:link ];
NSLog(@"val: %@", links);
}
我的想法是,我有一个加载的webview,我想要的页面,然后我会得到页面上显示的所有链接。在chrome中打开一个控制台,键入document.links提供83(链接数)和document.links [0]虽然[82]显示我想要的。但是,当我运行此代码(以及其他一些尝试)时,我似乎无法获得具有任何值的链接(似乎总是返回空)。
有人可以帮忙吗?
答案 0 :(得分:2)
您走在正确的轨道上,但是如果没有先将stringByEvaluatingJavaScriptFromString
转换为字符串,则无法返回.toString()
的JavaScript对象,通常JSON.stringify(..)
为link = [link stringByAppendingString:@"].toString()"];
(尽管后者不适用于DOM对象。)
尝试将第8行更改为
{{1}}
看看会发生什么。