2009-07-28 16 views
13

J'ai un composant UIWebView qui va charger une page Web qui pourrait contenir du JavaScript. Je veux exécuter moi-même du JavaScript avant que tout JavaScript sur la page Web chargée ne s'exécute. Je sais que je peux utiliser [myWebView stringByEvaulatingJavaScriptFromString:] sur le webViewDidFinishLoad: délégué du UIWebView, mais cela ne fonctionnera que mon JavaScript après le JavaScript sur la page Web est couru.Exécution de JavaScript dans un UIWebView avant l'exécution de tout autre code JavaScript

La seule solution pour injecter mon JavaScript dans le code source de la page Web? Par exemple, je le mettrais immédiatement après la balise <head> pour m'assurer qu'il s'agit du premier JavaScript exécuté.

Répondre

1

Vérifiez this post à propos de l'ordre d'exécution JS. Il y a un autre tutorial ici pour le même numéro. Si vous avez un problème avec un morceau de code spécifique, ajoutez-le ici dans un exemple détaillé et verrez ce que vous pouvez faire.

+0

Je pense qu'il s'agit plus d'une question sur la façon d'injecter javascript dans un UIWebView dans iOS plutôt que d'une question de commande javascript stricte. – MonkeyBonkey

5

Je voudrais aussi avoir une réponse à cette question. Je peux le faire fonctionner pour le chargement initial de la page en mettant [myWebView stringByEvaluatingJavaScriptFromString: js] à l'intérieur webViewDidStartLoad. À l'actualisation, cependant, cela ne semble pas fonctionner.

Modifier: J'ai trouvé cette solution (semblable à la suggestion dans votre question.) Je ne sais pas comment il est robuste. http://www.stevesaxon.me/posts/2011/window-external-notify-in-ios-uiwebview/