关于onclick打开新页面的问题

zhouzb889 2009-12-26 03:00:19
有下面一行代码:
<a onclick="if(checkvalue()){window.open(this.href+uid);return false;}" href="http://222.com/id=" target="_blank">222</a>


我的目的是想在checkvalue()返回值为true的时候,才打开链接http://222.com/id=uid
但是似乎以上代码不能达到目的,不管checkvalue()返回值是否为真,都打开页面http://222.com/id=
...全文
434 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
东大坡居士 2009-12-28
  • 打赏
  • 举报
回复
你不用<a>算了,直接用一个文本加个onclick算了
Inpool 2009-12-28
  • 打赏
  • 举报
回复
如果你要求一定要用window.open打开的话可以改成

function openTheUrl(url){
if(checkvalue() === true){
window.open(url)
}
return false
}


<a onclick="return openTheUrl(this.href+uid)" href="http://222.com/id=" target="_blank">222</a>


这样就每次都是用window.open打开新窗口
Inpool 2009-12-28
  • 打赏
  • 举报
回复
<a href="test.html" onclick="javascript:return checkvalue();">test</a>
Inpool 2009-12-28
  • 打赏
  • 举报
回复
上面的方法只要返回的不是false就会打开,如果非得返回true才打开的话稍微改一下
<a onclick="return checkvalue() == true" href="http://222.com/id=" target="_blank">222</a>
Inpool 2009-12-28
  • 打赏
  • 举报
回复
<a onclick="return checkvalue()" href="http://222.com/id=" target="_blank">222</a>


9楼的方法改成你自己的href不就行了吗
IE和FF下测试通过。
chollaflower 2009-12-28
  • 打赏
  • 举报
回复
window.open();
zoumin19870910 2009-12-28
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript">
function retValue(){
if(checkvalue()){
var uid="";
window.open("http://222.com/id="+uid);
}
}
</script>
</head>

<body>
<a href="javascript:retValue();">222</a>
</body>
</html>
zoumin19870910 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 supper2008 的回复:]
你把a标签的href去掉试试
[/Quote]

a 的href标签去掉了还能链接吗?
zoumin19870910 2009-12-28
  • 打赏
  • 举报
回复
为什么href的值不能变?这又不是说有很多地方引用,如果只是这个地方做判断的话,根本就没必要啊!

能讲下原因吗?
supper2008 2009-12-28
  • 打赏
  • 举报
回复
你把a标签的href去掉试试
zhouzb889 2009-12-28
  • 打赏
  • 举报
回复
这些方法都不可行,前提是href里面的内容是不能更改的。

有没有什么好的办法,可以在checkvalue()返回值为true的时候,才打开链接
passself 2009-12-27
  • 打赏
  • 举报
回复
对啊楼主你可以建一个函数可能就可以了
worldghost 2009-12-27
  • 打赏
  • 举报
回复
建议写个函数,然后在onclick 中调用它,就行了!!
zoutuo 2009-12-26
  • 打赏
  • 举报
回复
一般没有你这样写的。href里都不写具体的路径,都是用js控制的路径
zhouzb889 2009-12-26
  • 打赏
  • 举报
回复
要是在不改变href的情况下,怎么实现呢?
千游 2009-12-26
  • 打赏
  • 举报
回复
<a href="javascript:;" onclick="if(checkvalue()){window.open("http://222.com/id="+uid);return false;}" >222</a>

zhouzb889 2009-12-26
  • 打赏
  • 举报
回复
楼上的方法也不可行,不能达到我的目的!

checkvalue()返回值为true的时候,a标签才有效,才打开新页面!

草根醉秋意 2009-12-26
  • 打赏
  • 举报
回复

function openWin(){
if(checkvalue()){window.open("http://222.com/id="+uid);}
}

<a onclick=" openWin()" href="javascript:void(0)" target="_blank">222</a>

happy664618843 2009-12-26
  • 打赏
  • 举报
回复
先写个函数带参数就可以了 我以前也碰到这个问题
var OpenWindow=function(url)
{
window.open(url,'','');
}
javascript:OpenWindow("a.aspx?id="+uid)

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧