richiamare funzione javascript dopo login in popup.

Ala Vin

Nuovo Utente
9 Dic 2013
1
0
0
Salve a tutti, non riesco a risolvere questo problema: vorrei eseguire una funzione javascript dopo il login effettuato in un popup.
In pratica ho un file test.php in cui definisco un link:
<div id="nildeRest3" name="nildeRest3">
<a href="javascript:CallPippo('pippo','GET','http://xxx.it/rest/hellOauth/apikey/secret')">Test OAUTH + CallPippo</a>
</div>

nello head di questo file definisco il file js da includere e la funzione "pippo" che dovrà essere richiamata una volta effettuato il login:
<script type="text/javascript">
function pippo(x) {
alert("hello "+x);
}
</script>
<script language="javascript" src="http://xxx.it/scripts/api.js">

nel file api.js invece ho definito la funzione CallPippo che non fa altro che aprire il form di login in un popup:
function nildeCallPippo(callback, mth, url){
window.open(url+'?callback='+callback+'&ajax=1','Login',stile);
}

il form di login è definito in un'altro file authorize.php in cui nell'action è definito la chiamata a un'altra funzione javascript:
<form name='Form' id='Form' method='post' action=\"javascript:restResponse('$callback','POST','$authorizeURL?oauth_token=" . $RequestToken->getToken() "')\">
...
...
</form>

sempre nel file api.js è definita la funzione restResponse in questo modo:
function restResponse(callback, mth, url){
if (mth=='POST'){
var param=$('Form').serialize()+"&ajax=1"+"&callback="+callback;
req=new AjaxCross(url,
{
method:mth,
onCreate: function(response) { // here comes the fix
var t = response.transport;
t.setRequestHeader = t.setRequestHeader.wrap(function(original, k, v) {
if (/^(accept|accept-language|content-language)$/i.test(k))
return original(k, v);
if (/^content-type$/i.test(k) &&
/^(application\/x-www-form-urlencoded|multipart\/form-data|text\/plain)(;.+)?$/i.test(v))
return original(k, v);
return;
});
},
parameters: param,
onComplete: function (transport) {
var x=transport.responseText;
pippo('10'); /*********** IN QUESTO PUNTO VORREI RICHIAMARE LA FUNZIONE pippo(x) DEFINITA PRECEDENTEMENTE NEL FILE test.php. MA A QUANTO PARE NON SI PUO' FARE PERCHè LO SCRIPT SI INTERROMPE E NON EFFETTUA NEANCHE LA THIS.CLOSE(); *****************/
//eval(callback+"('tttt')");
this.close();
}
});
}

Anche se la funzione pippo(x) è definita in test.php prima dell'importazione del file api.js, sembrerebbe che non viene vista all'interno del file api.js.
Qualcuno sa dirmi una soluzione alternativa?
Spero di essere stato chiaro.
Grazie.