将javascript放入uiwebview问题

时间:2011-03-31 20:28:38

标签: javascript iphone uiwebview

我正在尝试在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]显示我想要的。但是,当我运行此代码(以及其他一些尝试)时,我似乎无法获得具有任何值的链接(似乎总是返回空)。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您走在正确的轨道上,但是如果没有先将stringByEvaluatingJavaScriptFromString转换为字符串,则无法返回.toString()的JavaScript对象,通常JSON.stringify(..)link = [link stringByAppendingString:@"].toString()"]; (尽管后者不适用于DOM对象。)

尝试将第8行更改为

{{1}}

看看会发生什么。