2013-08-25 11 views
5

Ho una UIWebView più piccola all'interno di un UIView. Voglio impostare il colore di sfondo di UIView per essere uguale all'HTML della webView. È possibile?Come ottenere colore di sfondo da UIWebView html?

ho provato, in webViewDidFinishLoad, per ottenere il colore in questo modo:

NSLog(@"color: %@", [webView stringByEvaluatingJavaScriptFromString: @"document.body.style.background"]); 

.. ma non restituisce nulla.

+0

lo hai fatto in - (void) webViewDidFinishLoad: (UIWebView *) webView? – BergP

+0

anche tu puoi provare quella proprietà document.body.style.backgroundColor – BergP

+0

provato entrambe le cose .. no joy – cannyboy

risposta

6

codice funzionante in soli tre passi ..

1) Copia il codice e incollarlo nel progetto.
2) Collegare l'uscita ___webView a UIWebView nel file xib.
3) Esegui.

- (void)viewDidLoad 
{ 
    [___webView loadHTMLString:[NSString stringWithFormat:@"<html><body id=\"mybody\" style=\"background-color:green;width:100px;height:100px;\"><b>Hello buddy</b></body></html>"] baseURL:nil]; 
    ___webView.delegate=self; 

    [super viewDidLoad]; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    NSString *javaScript = @"document.body.style.background"; 
    NSLog(@"color is %@",[webView stringByEvaluatingJavaScriptFromString:javaScript]); 
    NSLog(@"did load finish "); 
} 

// output è -----

2013-09-03 11: 56: 33.187 annunci [3655: 11303] colore è verde
2013-09-03 11 : 56: 33.188 annunci [3655: 11303] hanno terminato il caricamento

+0

@HayaBusa risposta eccellente –

5

Nella risorsa HTML. Io uso

body bgcolor="#FF0000" 

In tal caso il mio codice dovrebbe essere.

- (void)webViewDidFinishLoad:(UIWebView *)webView{ 
NSLog(@"Done loading"); 
NSLog(@"color1: %@", [webView stringByEvaluatingJavaScriptFromString:  @"document.body.bgColor"]); 
} 

uscita era -

2013-09-02 16:47:53.986 WebViewTest[14674:707] color1: #FF0000 

Ora, In risorsa HTML, io uso

body style="background-color:#FF0000" 

In questo caso il mio codice dovrebbe essere.

- (void)webViewDidFinishLoad:(UIWebView *)webView{ 
NSLog(@"Done loading"); 
    NSLog(@"color1: %@", [webView stringByEvaluatingJavaScriptFromString: @"document.body.style.backgroundColor"]); 

} 

uscita era -

2013-09-02 16:55:11.531 WebViewTest[14691:707] color1: rgb(255, 0, 0) 

Come si può vedere, a seconda di come si applica bgcolor in HTML, cambia anche il modo in cui si accede tramite script java ....

Speranza questo aiuta!

Problemi correlati