2009-06-08 125 views
0

嗨,我正在使用以下函数转到href单击上的proxypage。首先点击它的href工作正常。但第二次点击代码不会调用window.event.returnValue = true;语句,而如果我使用调试器,它按预期工作。javascript的奇怪行为

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

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

} 

如果有人知道这个

+0

你能告诉我们(给代码)你是如何调用该函数的,以及url的值是什么? – annakata 2009-06-08 09:17:13

回答

0

返回还可以防止默认操作,并适用于所有的浏览器辅助亲切。

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

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

-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;

+0

这是行不通的 – 2009-06-08 14:53:43

0

据我所知,位置=“ ...“和location.href =”...“等同于location.assign(”...“)。这意味着后续的代码行可以通过浏览器进行评估,但只要JavaScript可用,浏览器就会卸载文档,并加载新的URL,无论您是取消onclick事件还是防止冒泡。

如果你需要一个可重复的动作,就应该将广告链接到另一个框架或东西...

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

+1

我认为这是相当不好的礼仪,没有提供理由的投票答案。你需要我们的帮助吗? – 2009-06-10 18:44:52