function refresh(context) {
console.log(" in refresh view ");
window.location.href = context + '/abc.do';
}
function resetCookie(context) {
var view = getView();
if (view == "First") {
clearCookies();
setCookie("Second", "on");
console.log(" context in resetCookie 2");
} else {
clearCookies();
setFirstViewCookie();
setCookie("First", "on");
console.log(" context in resetCookie 3");
}
console.log(" context in resetCookie 4");
console.log(" context in resetCookie 5");
refresh(context);
return false;
}
<td>
<span id="firstview" style="display:none;">
<a href="javascript:void(0)" onclick=" resetCookie('<%= request.getContextPath()%>')">secondview</a>
</span>
<span id="secondview" style="display:none;">
<a href="javascript:void(0)" onclick="resetCookie('<%= request.getContextPath()%>')">firstview</a>
</span>
</td>
Этот фрагмент кода отлично работает в IE. Но в chrome и firefox, как только я нажимаю на тег, каким-то образом сначала вызывается window.location.href
, поэтому обновление страницы происходит без выполнения кода внутри функции . Я проверил это, удалив location.href
строку, и я вижу, что все строки выполняются последовательно, также я проверил номер строки, с которой происходит обновление вызова, на вкладке сети - показывает именно этот номер строки внутри обновленияфункция, даже не печатает console.log («в режиме обновления»);оператор внутри функции обновления .
В идеале все внутри resetCookie должно произойти, и тогда должно произойти window.location.href
внутри обновления.
Это spring tags jsp
.