J'essaie d'injecter JQuery dans un UIWebView
d'une page que je ne peux pas contrôler, disons Google, par exemple. Lorsqu'un UITextField
obtient le focus, j'exécute les lignes de code suivantes:Comment injecter JQuery dans une page existante dans un UIWebView?
NSString* scriptInject = @"var headElement = document.getElementsByTagName('head')[0]; var script = document.createElement('script');
script.setAttribute('src','http://jquery.com/src/jquery-latest.js');
script.setAttribute('type','text/javascript'); headElement.appendChild(script);";
[myWebView stringByEvaluatingJavaScriptFromString:scriptInject];
[myWebView stringByEvaluatingJavaScriptFromString:@"$(document).ready(function() {$('body').css('background', '#FF0000');}"];
J'exécute le changement de fond pour valider que je suis en mesure d'exécuter un script JQuery. Je peux vérifier que la méthode Objective-C est appelée, et j'ai même planté un alert
pour l'onload de la nouvelle balise <script>
, donc je sais qu'elle est en cours d'exécution dans le UIWebView
. Comment puis-je injecter correctement que je peux l'exécuter?
EDIT:
J'ai essayé événement cette après avoir appelé la fonction pour changer la couleur:
[myWebView stringByEvaluatingJavaScriptFromString:@"alert($('body').css());"];
Pas d'alerte montre.
Je trouve que mon code fonctionne bien, mais pas de manière fiable. Après avoir lu votre article, il se peut que le DOM ne soit pas encore prêt. Après avoir parcouru votre article, effectuer un sélecteur retardé peut être l'astuce pour attendre d'exécuter le changement en utilisant jQuery jusqu'à ce que le DOM soit prêt. Je vais essayer quand j'ai une chance. –
votre blog a disparu du web :( –
@Hamutsi.Correction! J'ai changé de moteur de blog et a cassé tous mes liens –