禁用浏览器按钮,直到页面加载完毕

时间:2013-12-06 16:44:54

标签: javascript jquery browser oracle-apex

我有一个顶级应用程序,但因为表单页面有很多数据要从单个记录中呈现,有时如果您没有让患者等待额外的2-6秒,您有时会点击浏览器后退按钮a应用程序中的按钮,如果您单击其中任何一个。您将从应用程序中收到错误。

如果您不知道,Apex确实支持jquery。

我想添加一个Javascript来禁用任何按钮,包括浏览器按钮,直到我的应用程序中的页面完成加载。

我在google上做了一些搜索,但没有一个显示出一个不错的解决方案。

我还有任何尝试,因为我不知道该怎么做。我对Jquery的了解非常有限。

你的帮助意味着很多

感谢

3 个答案:

答案 0 :(得分:1)

理想的方法是在屏幕上显示模态弹出对话框,防止用户点击屏幕上的任何内容。

jQuery UI模式对话演示:http://jqueryui.com/resources/demos/dialog/modal.html

在该模式中,显示类似“正在加载页面。请稍等。”

不,你不能禁用浏览器按钮。这是一个禁忌。

答案 1 :(得分:0)

您实际上并不希望能够禁用浏览器按钮。这意味着任何人都可以。想象一下这样做的攻击网站。那将是一场噩梦。

你最接近的事情是绑定onunload,但这可能没有多大帮助。否则使后端处理得更好。

我认为naveen的答案很好。这是你应该考虑实施的东西,但我认为最好让后端适应用户的不耐烦。在这种情况下,允许逐步加载数据可能是好的,或者至少使导航取消时不会抛出错误。我不知道你的系统设计,所以我无法在这方面提出具体的建议。

答案 2 :(得分:0)

无法禁用浏览器按钮,但您可以添加代码以禁用客户端/服务器端的输入。

在HTML中禁用:

<button id="mybutton" disabled="disabled"></button>

在javascript中禁用:

document.getElementById('mybutton').disabled=true;

使用jQuery禁用:

$("#mybutton").attr("disabled","disabled");

覆盖窗口卸载:

<script language="JavaScript">
    window.onbeforeunload = confirmClose;
    function confirmClose() {
        return "Are you sure to close this page?";
    }
</script>