2015-03-31 2 views
0

Привет Почему этоCSS переход на страницу выхода

window.onbeforeunload = function (e) { 
    document.getElementById('myLink').className = 'out'; 
} 

http://jsfiddle.net/X5vKS/

работать только с некоторыми ссылками?. Его вопрос here

, который не может оставлять комментарии до 50 реп.

Если я добавлю index.html, он будет напрямую связываться без перехода, если я добавлю полный адрес на страницу www.mywebsite.info/index, он идет прямо, чтобы связать и не выполняет переход.

Но если я добавлю google.com, yahoo.com и т.д., он отлично работает.

Я использую домен .info, если это помогает.

ответ

1

Прежде всего, используйте http:// в href перед сайтом.

Поскольку вы не дали подробностей, я думаю, проблема заключается в том, что ваша страница загружается слишком быстро, чтобы вы могли видеть переход. Я предлагаю вам добавить тайм-аут в функцию onbeforeunload.

Это добавляет 2 секунды ожидания.

window.onbeforeunload = function (e) { 

    setTimeout(function(){ 
     document.getElementById('myLink').className = 'out'; 
    }, 2000); 
} 

Если вы хотите ждать после функции, то сделать это -

window.onbeforeunload = function (e) { 

    document.getElementById('myLink').className = 'out'; 
    setTimeout(function(){ 
     document.getElementById('myLink').className = ''; 
    }, 2000); 
} 

Теперь onbeforeunload не предоставляет целый много функциональных возможностей по соображениям безопасности, но прежде следует сделать для вас.

Для получения дополнительной информации о синхронизации событий в JavaScript, прочитать - http://www.w3schools.com/js/js_timing.asp

+0

Я уже судимым, что это не связана с синтаксисом URL. http://www.google.com works http: //www.mysite.info не работает – Simon

+0

Отредактирован мой ответ. – Sam

+0

Да, это очень быстрая страница загрузки. Я думаю, это правильный ответ, как бы я хотел добавить тайм-аут к этому коду? Я полный noob, когда приходит к js. И спасибо за ваши ответы. – Simon

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

  • Нет связанных вопросов^_^