1

正如标题所说“谷歌浏览器打开 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
}

有任何想法吗?

4

3 回答 3

0

根据最新的浏览器统计数据- 无论如何,上一次测量(2008 年)只有 5% 的用户禁用了 Javascript。如今,它可能会更少。考虑到所有浏览器都默认启用它。因此,无论出于何种原因,通常只有高级用户会选择禁用 javascript,因此他们会理解他们访问的任何网站很有可能无法按预期运行 - Facebook、谷歌、亚马逊 - 现在每个人都使用 javascript。假设用户正在使用它是完全可以接受的,<noscript>如果您真的想涵盖所有基础,则在页面开头为这些用户提供一个整体版本:)

于 2010-12-16T13:59:09.610 回答
0

返回 false 并在 onclick 中有 false 是什么?

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

只是需要

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

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

onclick="return shpop('','','loginfb','foobar');"
于 2010-12-16T15:02:57.523 回答
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 被禁用,您的登录页面将在新选项卡中运行。

于 2014-12-08T21:50:28.703 回答