Событие JavaScript запускается, устанавливается window.location
, затем запускается действие по умолчанию для ссылки, и браузер переходит к '', что (IIRC) разрешается как текущий URI.
Это тот же эффект, который вы получаете, если щелкнуть ссылку, а затем быстро щелкнуть другую ссылку. Браузер не успевает перейти к первому до получения инструкции перейти ко второму, и он переходит ко второму. Если вы задерживаете возврат функции (помещая предупреждение в секунду), это дает достаточно времени для запроса первого URL-адреса, чтобы его можно было посетить вместо второго.
Вам необходимо отменить действие по умолчанию, которое при использовании встроенных атрибутов событий (не рекомендуется, ненавязчивый JavaScript - путь вперед) выполняется путем возврата false.
onclick="test(); return false;"