Я использую функцию javascript window.onbeforeunload, чтобы показывать предупреждение пользователю, когда пользователь пытается покинуть страницу, не отправляя данные. Эта функциональность работает нормально.window.onbeforeunload in javascript
Проблема приходит в IE (только), где пожары window.onbeforeunload события даже по щелчку внутренних ссылок, как
<a class="editlink" onclick="fnEditLink(this);" href="javascript:void(0);" > <img src="/images/newstyle/pencil.png" alt="edit" /> Edit </a>
Это внутренняя связь, которая используется для редактирования сетки строки без внесения какого-либо перенаправления или Ajax вызов. Простое простое редактирование только что созданной строки в структуре html DOM.
Это Java-код, который я использовал на странице:
<script>
var is_clicked = false;
$(document).ready(function(){
$('#get-a-quote-step2').submit(function(){
is_clicked = true;
return validate('get-a-quote-step2');
});
$('#skip_step, form input').click(function(){is_clicked = true;});
});
window.onbeforeunload = function() {
if(!is_clicked)
return false;
}
is_clicked = false;
<script>
Все работает отлично на светлячок но IE это создает проблемы. Я использую IE 8 для тестирования этого материала, но я думаю, проблема связана со всеми версиями IE.
В моем вышеприведенном коде проблема заключается в том, что если я нажму на внутреннюю ссылку, она установит флаг is_clicked в значение true, а затем, если я нажму кнопку обновления, я смогу перезагрузить страницу, не спрашивая пользователя, что он оставляет, он потеряет все несохраненные данные.
Я думал о том, что есть в любом случае esp; в JQuery, чтобы мы знали, что некоторые ссылки не нажимаются на какую-то вещь, например isNotClicked()? Или, если есть какое-то другое решение моей проблемы, это очень приветствуется.