【问题标题】:uiwebview ,objective cuiwebview,目标c
【发布时间】:2011-02-01 05:20:48
【问题描述】:

我想从给定的网页中提取 html 内容。当我运行下面给出的代码时,它会加载整个浏览器......比如说...... google.com......到 UIWebView..我希望 html 内容显示在我的 UIWebView 中......我使用了[webVieww stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"]webViewDidFinishLoad 它没有提取内容...我犯了错误...如果有问题,如果你们能纠正我的代码,我会很高兴。

icodeBrowserViewController.m

#import "icodeBrowserViewController.h"

@implementation icodeBrowserViewController

@synthesize webView,addressBar,activityIndicator;

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad 
{
    [super viewDidLoad];
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://firesky.com"]]];
}

-(IBAction)gotoAddress:(id) sender
{
    NSURL *url=[NSURL URLWithString:[addressBar text]];
    NSURLRequest *requestObj=[NSURLRequest requestWithURL:url];
    [webView loadRequest:requestObj];
    [addressBar resignFirstResponder];
}

-(void)webViewDidFinishLoad:(UIWebView *)webVieww
{
    js_result=[webVieww stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"];
    [activityIndicator stopAnimating];
}

【问题讨论】:

  • 你能清理一下代码的表示吗?这很难读。只需在每行前面粘贴 4 个空格。预览窗口将向您展示它的外观。
  • 你想获取原始 html 吗?
  • 只是特定的html内容
  • 当您向 HTML 服务器发出请求时,您会得到一个“文件”,这可能会导致加载其他文件,例如图像等。因此,您得到的只是 HTML 内容。您是否想要“有趣的内容”而不是标题内容和导航等等?
  • 不,我只想要使用此标签的特定内容“document.getElementByid(特定 id 名称)”......问题是 webviewDidfinishload 中的 javascript 没有在 webview 中加载......你能不能告诉我是什么问题

标签: objective-c cocoa-touch uiwebview


【解决方案1】:

我会为此使用 UITextView:

NSString *pageContents = [NSString stringWithContentsOfURL:myGoogleURL encoding:NSUTF8StringEncoding error:nil];
myUiTextView.text = pageContents;

【讨论】:

  • 我会从这个开始,使用一些字符串操作函数来过滤掉你不想要的东西,构建一个新页面(你需要一些东西来替换你正在删除的框架,可能只是 和 对),然后将其运行到 webView 中的 loadHTMLString:baseURL: 中。
猜你喜欢
  • 2014-02-05
  • 2011-05-20
  • 2017-09-12
  • 1970-01-01
  • 2015-03-06
  • 2018-07-27
  • 2013-06-16
  • 2012-05-13
  • 1970-01-01
相关资源
最近更新 更多