2014-05-13 10 views
6

ten prosty kodUIWebView produkcji about: blank wnioski kiedy iframe dołączany

var iframe = document.createElement('iframe'); document.documentElement.appendChild(iframe);

wstrzykiwany przez UIWebView stringByEvaluatingJavascriptFromString powoduje wywołanie UIWebViewDelegate shouldStartLoadWithRequest z about:blank. Co ciekawe nadal ma mainDocumentURL zestaw do dokumentu, który był tam w momencie wstrzyknięcia. Dla mnie oznacza to, że nie mogę wstrzyknąć takiego kodu, kiedy chcę - przywrócić do shouldStartLoadWithRequest zauważalnie zrywa wiele rzeczy. Mogę odrzucić wszystkie żądania(zwracając NO z shouldStart...), a fragmenty kodu z Internetu robią to bez żadnego ostrzeżenia, ale nie jest to systematyczne rozwiązanie.

Jakieś pomysły, dlaczego UIWebView ma to mylące i bezużyteczne zachowanie?

Odpowiedz

6

Ponieważ użytkownik nie ustawił atrybutu src na swoim iframe, domyślnie załaduje on about:blank. Aby uniknąć tego zachowania, przed dodaniem do dokumentu obiektu iframe można ustawić fałszywą wartość, a następnie anulować fałszywe żądanie w postaci shouldStartLoadWithRequest.

+0

OK, więc nie jest to mylące i może być nawet przystosowane do tego, aby być przydatnym. Trochę zawstydzające :-) –

Powiązane problemy