谷歌浏览器打开window.open(someurl)就好了...但是点击链接的页面/窗口也会打开someurl.com

时间:2010-12-16 13:54:01

标签: javascript internet-explorer google-chrome onclick window.open

正如标题所说“Google Chrome打开window.open(someurl)就好了......但是点击链接的页面/窗口也会打开someurl.com。

当我点击附带onclick =“shpop ...”的“点击此处”链接时,我的弹出窗口正确打开/facebook_login.php ...但是...同时,原来的窗口打开/facebook_login.php!

这种情况发生在Chrome和IE中,但FF很好,正在做我想要的......

我有这个链接:

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

我知道我可以删除href =“/ facebook_login.php”并替换为href =“#”..但如果js被禁用,我需要链接才能工作。

我在我的标签中导入了这个js代码:

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
}

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

根据最新的browser statistics - 最后一次测量(2008年),只有5%的用户禁用了Javascript。如今,它可能会更少。请考虑所有浏览器默认启用它。因此,通常只有高级用户无论出于何种原因选择禁用javascript,因此会明白他们访问的网站很有可能无法按预期工作 - Facebook,Google,亚马逊 - 这些天每个人都使用javascript。假设用户正在使用它是完全可以接受的,如果您真的想覆盖所有基础,那么在页面开头就为这些用户提供一个<noscript>版本:)

答案 1 :(得分:0)

返回false是什么,在onclick中有错误?

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

只需要

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

如果onclick返回任何错误,链接仍将打开。你在JavaScript控制台中看到任何错误吗?我想知道浏览器是否会吓到任何东西。在窗口名称中使用document.domain。试着给它起一个名字。

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

答案 2 :(得分:0)

这是最简单的解决方案:

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

您不需要return false因为您确实希望链接执行。

诀窍是在window.open和链接目标中使用 相同的窗口名称

window.open将创建弹出窗口,然后您的登录页面将在该弹出窗口中运行。

如果弹出窗口被阻止或Javascript被禁用,您的登录页面将在新标签页中运行。