2012-05-10 8 views
2

Webページからいくつかのdivを隠すためにJavaスクリプトを使用しようとしていますが、うまくいかないようですが、誰でも助けてくれます。JavaScriptを使用してUIWebViewでdivを非表示にする

- (void)viewDidLoad 
{ 

[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 

NSString *urlAddress = @"http://tvmdn.org/"; 

//Create a URL object. 
NSURL *url = [NSURL URLWithString:urlAddress]; 

//URL Requst Object 
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 

//Load the request in the UIWebView. 
[webView loadRequest:requestObj]; 

[self.webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');" 

"script.type = 'text/javascript';" 

"script.text = \"function hideID(idName) { " 

"var id = document.getElementById(idName);" 

"id.style.display = 'none';" 

"}\";" 

"document.getElementsByTagName('head')[0].appendChild(script);"]; 

[self.webView stringByEvaluatingJavaScriptFromString:@"hideID('headerbar');"]; 

} 

ありがとう、サミ。

答えて

2

スクリプト要素を動的に作成することで、そのようなjavascriptを挿入する必要はありません。あなたはこのようにそれを行うことができるはず:

クラスUIWebViewDelegateを行います(参照:Apple Docs)とちょうどこのようジャバスクリプトを実装:

- (void)webViewDidFinishLoad:(UIWebView *)webview{ 
    NSString *js = @"var element = document.getElementById('headerbar'); element.style.dislay = 'none';"; 
    NSString *res = [webview stringByEvaluatingJavaScriptFromString:js]; 
    [super webViewDidFinishLoad:webview]; 
} 
0

ブレンダンの答えは正しいのですが、ここではリーンであります上記にツイスト

- (void)webViewDidFinishLoad:(UIWebView *)webview{ 

    [webView stringByEvaluatingJavaScriptFromString:@"(\".classIdToHide\").hide();"]; 
} 
関連する問題