【问题标题】:How can load an html page on iPhone webView without <img src=> tag如何在没有 <img src=> 标签的情况下在 iPhone webView 上加载 html 页面
【发布时间】:2012-07-24 17:08:29
【问题描述】:

我以这种方式在 web 视图中加载一个 html 页面:

NSString *description = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.mypage.html"] encoding:NSUTF8StringEncoding error:nil];
[self.webView loadHTMLString:pRova baseURL:nil];

我需要删除:

<img src="http://www.mypage/image" align="left" style="padding: 0px 10px 0px 0px; width: 301px; height: 280px;" alt="diaspora-uys" />

来自 NSString *description,显示没有图像和只有文本的 UIwebView。 我怎样才能做到这一点?

【问题讨论】:

标签: iphone html uiwebview


【解决方案1】:

我是这样解决的:

- (NSString *)flattenHTML:(NSString *)html {
    NSScanner *theScanner;
    NSString *gt =nil;

    theScanner = [NSScanner scannerWithString:html];

    while ([theScanner isAtEnd] == NO) {
        // find start of tag
        [theScanner scanUpToString:@"<img" intoString:NULL] ; 

        // find end of tag
        [theScanner scanUpToString:@">" intoString:&gt] ;
    }

    html = [html stringByReplacingOccurrencesOfString:[ NSString stringWithFormat:@"%@>", gt] withString:@""];
    return html;
}  

【讨论】:

    【解决方案2】:

    1/ 在字符串中加载 HTML 内容

    +(id)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)

    2/去掉字符串中的&lt;img /&gt;标签

    3/ 在你的 webView 上使用 loadHTMLString

    看看NSString reference

    除了在 HTML 字符串中查找 &lt;img /&gt; 标记外,您还可以将 &lt;img 替换为 &lt;img style='display:none;' 以隐藏图像。但它仍然会加载...

    【讨论】:

    • 你的意思是这样的: NSString *descrizione = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"html page"] encoding:NSUTF8StringEncoding error:nil]; NSString *example = [example stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@""] withString:@""]; [self.webView loadHTMLString:descrizione baseURL:nil];
    • 除了替换 &lt;img/&gt; 外,它对我来说看起来不错。使用您的代码,您将以损坏的 HTML 代码结束。 &lt;img /&gt; 我的意思是完整的&lt;img src="http://www.abstract.it/immagini-varie/diaspora-guys" align="left" style="padding: 0px 10px 0px 0px; width: 301px; height: 280px;" alt="diaspora-uys" /&gt;。这就是您需要跳过的完整标签。
    【解决方案3】:

    【讨论】:

      【解决方案4】:

      我已经修改了代码,它运行良好。它只会删除 src 值。剩余的值和图片标签不被修改

      - (NSString *)flattenHTML:(NSString *)html {
          NSScanner *theScanner;
          NSString *gt = nil;
          NSString *temp = nil;
          theScanner = [NSScanner scannerWithString:html];
      
          while ([theScanner isAtEnd] == NO) {
              // find start of tag
              [theScanner scanUpToString:@"<img" intoString:&temp]; 
      
              //find the src tag
              [theScanner scanUpToString:@"src" intoString:&temp]; 
      
              [theScanner scanUpToString:@"=" intoString:&temp];
      
              [theScanner scanUpToString:@" " intoString:&gt];
              if (!gt) {
                  [theScanner scanUpToString:@">" intoString:&gt];    
              }
      
              if (gt) {
                  html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@",gt] withString:@"=\"\""];    
              }
          }
      
          return html;
      }  
      

      【讨论】:

        猜你喜欢
        • 2011-11-09
        • 2018-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-29
        • 1970-01-01
        相关资源
        最近更新 更多