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.
 

Discussioni simili