Se -pur mostrandosi il popup- continua a ignorare il "...; return false;" vale sempre questa regola:
O meglio, il meccanismo funziona così:
come già detto per prima cosa viene eseguito il codice che c'è scritto in onclick="..."
nel tuo caso c'era una chiamata ad una function e poi il return false. Ok fino a qualche post fa era proprio sbagliato il nome della function.. ora hai corretto.
Se non arriva ad eseguire il return false c'è una ragione sola:
avviene qualche errore javascript anche all'interno della function.
Solo per questo motivo non arriva ad eseguire il return false.
Ora sono andato a rivedere bene il codice javascript che avevi postato della function Popup().. e vedo qualcosa di molto strano:
nell'ultima riga leggo:
if(infocus=='front'){ acePopupWindow.focus(); acePopupWindow.location='http://';}
ora.. immagino che sei tu che hai tolto l'indirizzo completo.. o altro.. solo per scrivere qui nel forum il codice.. per discrezione o motivi tuoi.. però è anche vero che il codice "originale" poteva avere un errore di sintassi. Ma oltre questo c'è un errore di fondo, per logica, quella riga di codice doveva essere:
if(infocus=='front'){ acePopupWindow.focus(); acePopupWindow.location=mypage;}
sì, mypage, è il primo parametro che tu passi a questa function e mi sembra logico che venga passato da fuori come parametro altrimenti che utilità ha la function?
Mi raccomando quando ci fai vedere un tuo codice cerca di non modificarlo troppo altrimenti corri il rischio di non farci vedere qualche errore...
Fai così intanto prova a modificare quella riga di codice come ti ho indicato, con mypage al posto di un url.. se poi ci sono ancora errori o problemi facci vedere BENE il codice della function Popup, non alterare troppo il codice.
ciao
Edit:
Oltretutto dentro il codice di quella function si richiama una variabile "
acePopupWindow", definita subito sopra alla function che invece tu hai rinominato in "PopupWindow" togliendo "ace" solo che non gli hai cambiato il nome anche DENTRO alla function... comunque non crea un errore però per logica è meglio correggere.
Guarda, mi sono creato AL VOLO questa pagina stupidissima (non molto elegante visto che il codice script non sta dentro il tag head) tanto per vedere se funzionava il return false e a me funziona eccome:
Codice HTML:
<html>
<body>
<script language='javascript'> <!--
var PopupWindow=null;
function Popup(mypage,myname,w,h,pos,infocus){
if(pos=='random'){
LeftPosition = (screen.width)?
Math.floor(Math.random() * (screen.width-w)):100;
TopPosition = (screen.height)?
Math.floor(Math.random() * ((screen.height-h)-75)):100;
}
if(pos=='center'){
LeftPosition = (screen.width)?(screen.width-w)/2:100;
TopPosition = (screen.height)?(screen.height-h)/2:100;
} else if ((pos!='center' && pos!='random') || pos==null){
LeftPosition = 100;
TopPosition = 100;
}
settings = 'width='+ w + ',height='+ h + ',top=' + TopPosition + ',left=' + LeftPosition + ',location=no,directories=no,menubar=no,toolbar=no,' + 'status=no,scrollbars=no,resizable=no,dependent=no';
PopupWindow=window.open('', myname, settings);
if (infocus=='front'){
PopupWindow.focus();
PopupWindow.location = mypage;
}
} //-->
</script>
<a href="http://google.it" onClick="javascript: Popup('http://www.w3schools.com/','Popup','421','400','center','front'); return false;" style="text-decoration:none">Siti amici</a>
</body>
</html>
Nel mio link di prova, anche se c'è l'url di google nell'href questo non si vedrà mai, ma solo il link diverso che verrà mostrato in popup.
Come puoi vedere il codice della function è stato completamente corretto in base alle osservazioni che ti ho dato qui nel messaggio, quindi puoi usare questa versione di script. E scrivere BENE il return false così come lo vedi scritto nel link di prova.