0

I'm trying to run some javascript against a UIWebView but it's doesn't seem to be working. For example, here is a snippet of html I'm using to test:

<html><body><h1>Hello World!</h1><p>It's me.</p></body></html>

If I run the following javascript against it, the return value is 0, when it should be 1.

var elements = document.getElementsByTagName("h1");
elements.length;

Here's the objc code I'm using for the webview. 'parser' is a string containing the above javascript:

[webView loadHTMLString:@"<html><body><h1>Hello World!</h1><p>It's me.</p></body></html>" baseURL:nil];
NSString *markupResult = [webView stringByEvaluatingJavaScriptFromString:parser];

2 Answers 2

3

Implement the UIWebViewDidfinishLoading method and write following code inside it

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *markupResult = [webView stringByEvaluatingJavaScriptFromString:parser];
}
Sign up to request clarification or add additional context in comments.

Comments

1

Upon further investigation, the problem turned out to be that webview hadn't finished loading when the javascript was called. I had to call the javascript from the webViewDidFinishLoad delegate callback.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.