正如标题所说“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
}
有什么想法吗?
答案 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被禁用,您的登录页面将在新标签页中运行。