Sto cercando di eseguire alcuni Javascript sul contenuto all'interno di UIWebView. Forse la mia conoscenza del tempo di esecuzione Javascript è carente, ma io "m confuso circa il seguente esempio Vedere codice sorgente e commenti per i dettagli:.Conferma del comportamento di Javascript in una UIWebView
NSString *html = [NSString stringWithFormat:@"<html><head><script type='text/javascript'>var content='the initial content';function myFunc(){return 'value of content: ' + content;}myFunc();</script></head><body>Hello blank</body></html>"];
// I would expect after this call that the variable content exists, as well as the function myFunc()
[self.webView loadHTMLString:html baseURL:nil];
// However, it appears not to. The following call returns nothing
NSString *result = [self.webView stringByEvaluatingJavaScriptFromString:@"myFunc();"];
NSLog(@"result: %@", result);
// Inserting the Javascript at this point seems to work as expected
result = [self.webView stringByEvaluatingJavaScriptFromString:@"var content='the new content';function myFunc(){return 'value of content: ' + content;}myFunc();"];
NSLog(@"result: %@", result);
// And calling myFunc() at this point is successful
result = [self.webView stringByEvaluatingJavaScriptFromString:@"myFunc();"];
NSLog(@"result: %@", result);
In sintesi, mi aspetterei che la variabile globale Javascript e la funzione ho creato . quando si carica il codice HTML sia disponibile a seguito javascript chiama Sorprendentemente, non sembra, e tutto javascript roba deve essere aggiunto in seguito è corretto
grazie per qualsiasi aiuto in anticipo
.?. - --- update ----- Dovrei aggiungere che self.view è una WebView in questo caso. rico mettendo il tag script sia nella testa che nel corpo del documento HTML, senza alcun cambiamento nel comportamento.
Anche questo mi sorprende. Devo chiedere (non correlato alla domanda), perché chiami myFunc() dopo averlo dichiarato? – donkim
Ah, questo era solo per verificare se qualcosa è successo. Non dovrebbe essere lì. Toglierlo non fa nulla. –