2009-06-08 3 views
0

Привет Я использую следующую функцию, чтобы перейти к прокси-серверу на клике href. для первого щелчка на 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

ответ

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 

EDIT: должен быть в этом случае

window.event.cancelBubble=true;

+0

это не работает –

0

Насколько я знаю, расположение = " ... "и location.href =" ... "являются эквивалентом location.assign (" ... "). Это означает, что последующие строки кода могут быть оценены браузером, но, как только JavaScript yeilds, браузер выгрузит ваш документ и загрузит новый URL-адрес независимо от того, отмените ли вы событие onclick или не можете ли вы его активировать.

Если требуется повторяемые действия, вы должны ориентировать ссылку на другой кадр или что-то ...

Я понятия не имею, что означает, что ваш вопрос относительно собирается на странице прокси (?!) И работая первый раз, но не второй. Какой второй раз? Если пользователь нажмет? Если пользователь нажмет обновление? Если пользователь дважды щелкает? Если пользователь вернется завтра? Что это значит!!??

+1

Я считаю, что это довольно плохой этикет, чтобы проголосовать за ответ без объяснения причин. Хотели бы вы нам помочь или нет? –

Смежные вопросы