Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

stringByEvaluatingJavaScriptFromString does not work

I am trying to call a javascript function from loaded local html file in UIWebView but it deosn't respond

it look like this

NSString *script=[NSString stringWithFormat:@"sample()"];

if (tekst.loading) {
    NSLog(@"Loading");
} else {
    NSLog(@"Fully loaded");
    [tekst stringByEvaluatingJavaScriptFromString:script];
}

and in html

<head>
....
<script type='text/javascript'>
function sample() {
alert('Paznja');
}
</script>
...
</head> 
like image 461
Vix Avatar asked Jul 11 '11 21:07

Vix


1 Answers

It looks to me as if you are not using a delegate on your UIWebView. If you set a delegate and put the call to the Javascript into the "- (void)webViewDidFinishLoad:(UIWebView *)webView " method, it works fine:

UIWebView *wv = [[UIWebView alloc] initWithFrame:CGRectMake(0.0, 0.0, 700.0, 700.0)];
[self.view addSubview:wv];
wv.delegate = self;
[wv loadHTMLString:@"<html><head><script type='text/javascript'>function sample() {alert('Paznja');}</script></head><body><h1>TEST</h1></body></html>" baseURL:nil];
[wv release];

and in the same class:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
   [webView stringByEvaluatingJavaScriptFromString:@"sample()"];
}

When I run this code, the alert message works fine.

like image 91
joern Avatar answered Nov 07 '22 05:11

joern