Эта функция - пустая трата времени. Назначение location.href
одинаково хорошо работает во всех существующих в настоящее время браузерах. this.browserClass.isNN4
- намек на то, что этот код беспокоится о вещах, которых нет в этом столетии. Как будто вонючий старый браузер нюхает не достаточно плохо. (Во всяком случае, даже в Netscape оба эти задания работали.)
setTimeout("location.href = '" +url+"'", 0);
Старайтесь не передавать строки в setTimeout
, это то же самое, что и eval
со всеми теми же проблемами (например, ваш URL содержит апостроф ... boom). Передайте функцию, встроенную при необходимости (setTimeout(function() { location.href= url; }, 0);
).
Однако для меня это пахнет тем, что вы захватываете событие click
или mousedown
по ссылке, а не отменяете событие (возвращая false
из обработчика события). Следовательно, ссылка после действия по умолчанию может происходить и может, в зависимости от браузера, переопределять навигацию location.href
.