Предотвращение «перехвата» намерения клика по ссылке при применении пользовательских функций к событию клика

Например, есть код JavaScript с обработчиком кликов, который определяет, куда должен быть перенаправлен пользователь. Допустим, это просто случайная ссылка перенаправления, которая вычисляется, когда пользователь нажимает на ссылку.

Вот несколько сценариев:

  • Если пользователь щелкает ссылку левой кнопкой мыши, намерение пользователя состоит в том, чтобы сохранить навигацию на той же вкладке, что отлично работает с window.location.

  • Если средний щелчок пользователя по этой ссылке, пользователю кажется, что веб-сайт перехватил средний щелчок и просто проигнорировал его, перенаправив пользователя на ту же вкладку, а не на новую вкладку.

  • Кроме того, как кто-то только что прокомментировал (и удалил комментарий? ), другой сценарий заключается в том, что клавиши-модификаторы также могут предложить браузеру открыть новую вкладку или даже новое окно.

  • Еще одно предложение — открыть ссылку в новой вкладке или окне через контекстное меню. Это менее важно, но точно такая же проблема юзабилити.

Я видел эту проблему на многих веб-сайтах, особенно для меня, Google Analytics, где почти каждый раз, когда я щелкаю средней кнопкой мыши, возникает этот эффект.

Хорошим примером того, что нужно для кода JavaScript, является:

Process some data, then send off a XHR request that needs to be completed before allowing the user to continue to the link they clicked on.

Как это обойти? например. Существуют ли способы определить, ожидал ли пользователь появления ссылки на новой вкладке, и если да, то можно ли загрузить новую вкладку? Может быть, я думаю об этом неправильно?

7
задан gak 1 August 2012 в 03:35
поделиться