使用JavaScript锁定页面上的任何操作

时间:2012-09-03 04:55:52

标签: javascript html popup webpage outsystems

我是JavaScript的新手。我使用Outsystems技术开发了一个应用程序,在那里我向用户显示一个弹出窗口,一旦用户填写信息,用户点击“保存”按钮。现在我需要禁用所有页面内容,因为它需要很长时间才能保存,在这之间用户可以点击其他任何内容。

所以我需要使用JavaScript锁定页面,并显示一条消息,告诉用户等到进程完成。(点击“保存”按钮)

任何提示?

感谢。

5 个答案:

答案 0 :(得分:2)

只需添加一个完整的固定位置叠加层,上面写着“正在保存...请稍候”。在上面。你甚至可以把它变成半透明的灰色。

答案 1 :(得分:1)

绝对死简单的方法是jQueryUI modal dialog.你可以用几行代码实现一个,加上一些HTML标记并包括库:

$( "#dialog-modal" ).dialog({
        height: 140,
        modal: true
    });
});

但是,您应该注意:这个就像任何其他JavaScript解决方案一样,不会阻止恶意用户在您不希望它们与您的网站进行交互时。唯一真正的保护是在用户到达服务器端代码时检查用户的所有输入。

答案 2 :(得分:0)

您可以使用JavaScript禁用所有输入:

(在本例中为jQuery)

$(':input').attr('disabled', 'disabled');

但同样地,这不会阻止在另一个标签中做某事,或者离开页面或者刷新它。

答案 3 :(得分:0)

您可以做一些非常简单的事情,例如在页面顶部应用透明div。这样说:

var overlay = $("<div style='width:100%; height: 100%; top: 0; z-index: 100; position: absolute; background: lightgray; opacity: 0.5; text-align: center; font-size: large; padding-top: 25%; font-weight: bold;'>Loading...</div>");
$("body").append(overlay);

答案 4 :(得分:0)

如果你使用jQuery(demo):

CSS:

.overlay {
    position: absolute; 
    top: 0; 
    left: 0;
    width: 100%; 
    height: 100%;
    z-index: 999;
    background-color: #000;

    font-size: 24px;
    font-family: sans-serif;
    color: white;
    text-align: center;
}​

JavaScript的:

$('<div>in process...</div>')
    .addClass('overlay')
    .fadeTo(0, 0.4)
    .appendTo('body');
​