Google Chrome se abre window.open (someurl) muy bien ... pero la página / ventana con enlace abre también se ha hecho clic someurl.com

StackOverflow https://stackoverflow.com/questions/4461451

Pregunta

Como dice el título "Google Chrome abre window.open (someurl) muy bien ... pero la página / ventana con enlace abre también se ha hecho clic someurl.com.

Cuando pulso en el "Haga clic aquí" vínculo con el onclick = "shpop ..." llamada adjunto, mis pop-up se abre /facebook_login.php' correctamente ... pero ... al mismo tiempo, la ventana original /facebook_login.php abre también!

Esto sucede en Chrome e IE, pero FF está muy bien y hacer precisamente lo que quiero ..

Tengo este enlace:

<a href="/facebook_login.php" onclick="shpop('','','loginfb','');return false">Click here</a>

Sé que podría quitar el href = "/ facebook_login.php" y sustituirlo por href = "#" .. pero necesito el enlace de trabajo si js está desactivada.

Tengo este código js importado en mi etiqueta:

function shpop(u,t,w,v)  
{
    var text = encodeURI(t);
    var uri = encodeURI(u);
    var h = document.location.href;
    h = encodeURI(h);
    var wwidth='600'; /*popup window width*/
    var wheight='300'; /*popup window height*/
    if(v=='' || undefined==v)v=document.domain; /*popup name/title */

   switch(w){
       case 'loginfb':
           var url = '/facebook_login.php';
           wwidth='980';
           wheight='600';
       break;
   }

    window.open(url,v,'width='+wwidth+',height='+wheight);
    return false
}

¿Alguna idea?

¿Fue útil?

Solución

¿qué es con la devolución falsa, y teniendo falsa en el onclick?

Este

onclick="shpop('','','loginfb','');return false"

Sólo tiene que ser

onclick="return shpop('','','loginfb','');"

Si los rendimientos onclick cualquier error, el enlace se abrirá aún. ¿Ves algún error en la consola de JavaScript? Me pregunto si los navegadores están flipando acerca de cualquiera. en el nombre de la ventana del uso de document.domain. Trate de darle un nombre.

onclick="return shpop('','','loginfb','foobar');"

Otros consejos

Según las últimas estadísticas navegador - bien la última vez que se midió de todos modos (2008 ) sólo el 5% de los usuarios tiene JavaScript deshabilitado. Hoy en día es probable que sea menos. Tenga en cuenta que todos los navegadores ya lo tienen activado por defecto. Por lo tanto es por lo general sólo los usuarios avanzados que por cualquier razón optan por desactivar JavaScript, y por lo tanto va a entender que hay una buena probabilidad de cualquier sitio web que visitan no funcionará como se espera - Facebook, Google, Amazon - todo el mundo utiliza JavaScript en estos días. Es perfectamente aceptable suponer que el usuario lo está utilizando, con una versión global <noscript> al comienzo de la página para los usuarios si realmente desea cubrir todas sus bases:)

Esta es la solución más simple:

<a href="/facebook_login.php" 
    target="FBpopup" 
    onclick="window.open('about:blank','FBpopup','width=980,height=600')">
    Click here
</a>

no es necesario return false porque en realidad se desea que el enlace a ejecutar.

El truco es utilizar el mismo nombre de la ventana , tanto en el window.open y en el destino del enlace.

window.open va a crear la ventana emergente, a continuación, la página de inicio de sesión ejecutará en ese emergente.

Si se bloquean ventanas emergentes o JavaScript no está habilitado, la página de inicio de sesión ejecutará en una nueva pestaña.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top