2012-06-06 21 views
5

Domanda breve: È possibile rilevare window.open() in un UIWebView utilizzando il UIWebViewDelegate o c'è un altro modo per raggiungere questo? Ho bisogno dell'URL quando un window.open() -Event viene attivato per mostrare un UIAlertView.Rileva window.open() da UIWebView

+0

Ciao Fabio, ti invitiamo a elaborare come utilizzare stringByEvaluatingJavaScriptFromString in shouldStartLoadWithRequest per mostrare UIAlertView. Grazie – iBhavik

+0

Con il mio codice qui sotto puoi sovrascrivere 'window.open' per funzionare come un normale link. Sei in grado di rilevare se proviene da 'window.open' se aggiungi un parametro come'? Windowopen = true' e dai un'occhiata a questo URI in 'shouldStartLoadingWithRequest:' –

risposta

11

dovete sovrascrivere window.open() utilizzando JavaScript:

[webView stringByEvaluatingJavaScriptFromString:@"window.open = function (open) { return function (url, name, features) { window.location.href = url; return window; }; } (window.open);"]; 
0

Provare a utilizzare questo metodo delegato. Spero che questo ti aiuti.

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; 
- (void)webViewDidStartLoad:(UIWebView *)webView; 
+0

Grazie per la tua risposta, ma stavo chiedendo se il 'UIWebViewDelegate' rileverà' window.open() '. 'target =" _ blank "' non spara un evento, ecco perché lo chiedo. –

+0

Dovrebbe essere un comando html. – iamsult

+0

Non funziona, mi dispiace. –