Извиняюсь за заголовок, мне было трудно определить свой вопрос лаконично, и это было лучшее, что я мог сделать. Если кто-то хочет отредактировать его, чтобы добавить лучший заголовок, пожалуйста, будьте моим гостем.
Во всяком случае, вопрос. На нашей веб-странице есть возможность удалить что-то . Они делают это, нажимая на ссылку для удаления, которая выглядит примерно так:
<a href="http://localhost/a/path/remove-thing.html?ID=42" onclick="return confirm('Are you sure you want to remove this thing?');" >Remove this thing!</a>
Теперь, очевидно, обычно, когда пользователь нажимает на эту ссылку, он получает окно подтверждения javascript, которое просит его подтвердить, что он хочет удалить объект. Если они щелкают по cencel, событие onclick имеет значение false и удаление не происходит; если они нажимают хорошо, то это делает.
Моя проблема в том, что если пользователь нажимает на другую ссылку на странице (в любое место), а затем быстро нажимает на ссылку удаления до загрузки первой страницы, JavaScript никогда не запускается, но вещь удаляется - когда они нажали на "Удалить эту вещь!" они запустили этот URL вместо того, на котором они первоначально щелкнули. Есть ли способ избежать этого? Мы делаем подтверждение «неправильно»? Я предполагаю, что это как-то связано с тем, что браузер отключает проверку javascript, когда вы нажимаете первую ссылку, когда он готовится отобразить новую страницу, но при этом все равно принимает изменение URL-адреса до того, как страница исчезнет ...
(Это было протестировано в Firefox 3.6 и подтвердило наличие проблемы. Другие браузеры пока не тестировались.)