javascript的奇怪行为

时间:2009-06-08 09:06:57

标签: javascript location

您好我正在使用以下功能在点击href时转到代理页面。首次点击到href它工作正常。但第二次点击代码不会调用window.event.returnValue = true;声明,如果我使用调试器,它按预期工作。

function CallDownloadProxy(url)
{
  //debugger;
  try
  {
   window.location = url;
   window.event.returnValue=true;
}

  catch (err)
  {
    alert(err.description );
  }

}
如果有人知道这个话,请帮助

3 个答案:

答案 0 :(得分:0)

返回 false 也会阻止默认操作并适用于每个浏览器。

function CallDownloadProxy(url) {
   window.location.href = url;
   return false;
}

我想知道你为什么使用JS代替链接。那么“第二次点击”是什么意思?为什么有人需要点击链接两次?

答案 1 :(得分:0)

据我所知,location =“...”和location.href =“...”相当于location.assign(“...”)。这意味着后续的代码行可能会被浏览器评估,但是只要JavaScript发布,浏览器就会卸载您的文档,并加载新的URL,无论您是取消onclick事件还是阻止它冒泡。< / p>

如果您需要可重复的操作,则应将链接定位到另一个框架或其他内容......

我不知道你的问题对于去代理页面(?!)和第一次工作而不是第二次工作意味着什么。什么第二次?如果用户点击回来?如果用户点击刷新?如果用户双击?如果用户明天回来?这是什么意思!! ??

答案 2 :(得分:-1)

在设置returnValue后,你似乎需要做这样的事情:

 // e comes from event handler parameter
 if (e && e.stopPropagation) //if stopPropagation method supported
  e.stopPropagation()
 else
  event.cancelBubble=true; // for IE

编辑:必须是这种情况

window.event.cancelBubble=true;