2012-05-10 37 views
2

我正在嘗試使用java腳本從網頁隱藏幾個div,但它似乎不工作,任何人都可以幫助我,繼承人我的代碼。使用JavaScript來隱藏div在UIWebView

- (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),只是實現這樣的JavaScript:

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