0

嗨,我正在使用以下功能通过单击 href 转到代理页面。对于第一次单击 href 它工作正常。但是第二次单击代码不会调用 window.event.returnValue=true; 声明,而如果我使用调试器,它会按预期工作。

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

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

}

如果有人知道这一点,请提供帮助

4

3 回答 3

0

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

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

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

于 2009-06-08T09:19:41.850 回答
0

据我所知,location = "..." 和 location.href = "..." 相当于 location.assign("...")。这意味着浏览器可能会评估后续的代码行,但是一旦 JavaScript 失败,浏览器就会卸载您的文档,并加载新的 URL,无论您是取消 onclick 事件还是阻止它冒泡。

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

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

于 2009-06-09T19:17:10.580 回答
-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;

于 2009-06-08T09:57:19.853 回答