Ich versuche, JQuery in eine UIWebView
einer Seite zu injizieren, die ich nicht kontrollieren kann, sagen Google, zum Beispiel. Wenn ein UITextField
Fokus erhält, ich Ausführen der folgenden Codezeilen:Wie injiziere ich JQuery in eine bestehende Seite innerhalb eines 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');}"];
ich den Hintergrund ändern bin Ausführung zu bestätigen, dass ich in der Lage bin ein JQuery-Skript auszuführen. Ich kann überprüfen, dass die Objective-C-Methode aufgerufen wird, und ich habe sogar eine alert
für das Onload des neu erstellten Tags <script>
gepflanzt, so dass ich weiß, dass es in der UIWebView
ausgeführt wird. Wie injiziere ich es richtig, dass ich es ausführen kann?
EDIT:
I Veranstaltung versucht haben dies nach dem Aufruf der Funktion, die Farbe zu ändern:
[myWebView stringByEvaluatingJavaScriptFromString:@"alert($('body').css());"];
keine Warnung zeigt.
Ich finde, dass mein Code tatsächlich funktioniert, nur nicht zuverlässig. Nach dem Lesen Ihres Artikels kann es daran liegen, dass das DOM noch nicht fertig ist. Nachdem Sie Ihren Artikel überflogen haben, kann die Ausführung eines verzögerten Selektors der Trick sein, auf die Ausführung der Änderung mit jQuery zu warten, bis das DOM bereit ist. Ich werde es versuchen, wenn ich eine Chance habe. –
Ihr Blogpost verschwand aus dem Internet :( –
@Hamutsi. Fixed! Ich änderte Blog-Engine und brach alle meine Links. –