13

I have a UIWebView component that is going to load a webpage which might contain JavaScript. I want to run some JavaScript of my own before any JavaScript on the loaded webpage runs. I know I can use [myWebView stringByEvaulatingJavaScriptFromString:] on the webViewDidFinishLoad: delegate of the UIWebView, however this will only run my JavaScript after the JavaScript on the webpage is run.

Is the only solution to inject my JavaScript into the source code of the webpage? For example, I would put it immediately after the <head> tag to insure it is the first JavaScript that is run.

2 Answers 2

5

I would like an answer to this question as well. I can get it to work for the initial loading of the page by putting [myWebView stringByEvaluatingJavaScriptFromString: js] inside webViewDidStartLoad. On refresh, however, it does not appear to work.

Edit: I found this work-around (similar to the suggestion in your question.) Not sure how robust it is. http://www.stevesaxon.me/posts/2011/window-external-notify-in-ios-uiwebview/

Sign up to request clarification or add additional context in comments.

Comments

1

Check this post about JS execution order. There is another tutorial here for the same issue. If you have a problem with a specific piece of code add it here in a detailed example and will see what it can be done.

1 Comment

I think this is more of a question about how to inject javascript into a UIWebView in iOS rather than a strict javascript ordering question.

Your Answer

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