如何避免firefox中的页面刷新?它在火狐里不起作用

svujldwt  于 2021-07-12  发布在  Java
关注(0)|答案(2)|浏览(231)

我正在调用href和onclick函数,在onclick函数中我正在调用ajax函数。由于页面重新加载,ajax函数在firefox中不起作用。如何解决这个问题?下面是调用href中的controller方法和onclick中的ajax函数的按钮。

<a ref="${pageContext.request.contextPath}/DepartmentUser/departmentUserLoginJnlp?userId=${userId}&var=sign&siteName=${siteName}">
    <button class="btn btn-primary btn-sm themebutton captureSign" type="button" id="captureSign" onclick="ajaxAsyncRequest()">Capture Signing Certificate Details</button>
</a>
xmjla07d

xmjla07d1#

改变
onclick=“ajaxasyncrequest()”

onclick=“ajaxasyncrequest();返回false;”

hrirmatl

hrirmatl2#

一旦页面导航,所有正在运行的脚本都将停止,ajax调用将被取消。如果希望ajax调用完成,则需要将导航延迟到完成之后。一 <button> 嵌套在 <a> 元素对此不起作用。
如果这是一个选项,我建议将href调用放在ajax函数中,并删除标记。如果需要jsp填写url,请将其放在一个隐藏字段中。
类似这样的内容(使用jquery):

<button ... onClick="ajaxSyncRequest()">...</button>
<input type="hidden" id="myNextUrl" value="${pageContext.request.contextPath}/DepartmentUser/departmentUserLoginJnlp?userId=${userId}&var=sign&siteName=${siteName}"/>
<script>
function ajaxSyncRequest() {
  $.ajax({
    ...
    onSuccess: function () {
      window.location.href = $("#myNextUrl").val();
    }
  });
}
</script>

相关问题