如何避免页面刷新在Firefox?这不是在Firefox工作

问题描述 投票:1回答:2

我打电话href和的onclick功能,在功能的onclick我打电话的AJAX功能。由于页面重载的AJAX功能不能在Firefox工作。我怎样才能解决这个问题呢?下面显示按钮调控制器的方法在href和AJAX功能的onclick。

<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>
javascript java ajax jsp firefox
2个回答
0
投票

更改

的onclick = “ajaxAsyncRequest()”

的onclick = “ajaxAsyncRequest();返回false;”


0
投票

一旦页面导航,所有正在运行的脚本停止和AJAX调用被取消。如果你想在AJAX调用来完成,需要延迟导航,直到它完成之后。嵌套在<button>元素A <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>
© www.soinside.com 2019 - 2024. All rights reserved.