2013-08-25 30 views
5

私はUIView内でより小さなUIWebViewを持っています。私はUIViewの背景色をWebViewの読み込まれたHTMLと同じに設定したいと思います。これは可能ですか?UIWebView htmlから背景色を取得していますか?

私はこのような色を取得するために、webViewDidFinishLoadで、試してみた:

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

を..しかし、それは何も返しません。

+0

- (void)webViewDidFinishLoad:(UIWebView *)webView? – BergP

+0

あなたもそのプロパティを試すことができますdocument.body.style.backgroundColor – BergP

+0

両方のことを試してみました..いいえ喜び – cannyboy

答えて

6

作業コードは3ステップのみです。

1)コードをコピーしてプロジェクトに貼り付けます。
2)___webViewコンセントをxibファイルのUIWebViewに接続します。
3)実行します。 56:

- (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 "); 
} 

//出力は-----

2013年9月3日11である33.187広告【3655:11303]色
2013年9月3日11緑色であります:56:33.188 ads [3655:11303]完了しました

+0

@HayaBusa excellent answer –

5

HTMLリソースです。私は使用します

body bgcolor="#FF0000" 

その場合、私のコードが必要です。

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

出力された -

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

、HTMLリソースでは、私は私のコードがあるべきその場合

body style="background-color:#FF0000" 

を使用しています。

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

} 

出力だった -

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

あなたが見ることができるように、あなたがHTMLにBGCOLORを適用する方法に応じて、また、あなたはJavaスクリプト経由でアクセスする方法を変更します....

・ホープこれは役に立ちます!

関連する問題