javascript - 使 javascript 警告/确认对话框更加可见(尤其是在 Google Chrome 浏览器中)

标签 javascript jquery google-chrome alert

在最新版本的 Google Chrome 浏览器中,javascript 警告对话框和确认对话框不是很明显。它们出现时不会发出声音,位于屏幕顶部附近,而且它们是白色的,因此很容易融入大多数网站。

这会导致用户没有意识到警报的存在,并且由于警报会卡住浏览器直到被关闭,因此用户很容易认为他们的浏览器被卡住了。

有哪些方法可以使 javascript Alert 更加突出?

最佳答案

一种选择是使用 div 覆盖创建您自己的警报。但是,为确认对话框执行此操作会更加困难,因为您通常希望所有执行都停止,直到用户在确认对话框中选择确定或取消。

下面是一个很好的选项,它允许您继续使用浏览器的警告和确认对话框:

创建这些函数(使用 Jquery 但可以修改为 Javascript):

function alrt(msg) {
    var tint = $('<div class="PopupBgTint"></div>');
    tint.appendTo('body');
    alert(msg);
    tint.remove();
}
function cnfrm(msg) {
    var tint = $('<div class="PopupBgTint"></div>');
    tint.appendTo('body');
    var rtrn = confirm(msg);
    tint.remove();
    return rtrn;
}

在您的 CSS 文件中,像这样定义 PopupBgTint:

.PopupBgTint
{
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background-color: black;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
    filter: alpha(opacity=50);
    -moz-opacity: 0.5;
    -khtml-opacity: 0.5;
    opacity: 0.5;
    z-index:99999;
}

然后,而不是调用
alert('Hello World')confirm('Continue?')
而是调用 alrt('Hello World')cnfrm('Continue?')

这就是它的全部。这将创建一个覆盖整个页面的临时有色覆盖层,其顶部带有警告/确认对话框,使对话框更加可见。

参见示例: http://jsfiddle.net/wcU3f/1/
(尽管 jsfiddle 使用框架,这会抵消部分效果,但您可以了解它在整个网页上的功能。)

关于javascript - 使 javascript 警告/确认对话框更加可见(尤其是在 Google Chrome 浏览器中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19844936/

相关文章:

javascript - 省略分号时出错 - 有人可以解释为什么吗?

javascript - 在剑道网格中获取单元格文本

javascript - Ajax 自动完成浏览器卡住/崩溃

jquery - 如何删除重复的 div 部分?

javascript - 存储和显示多个输出

HTML5 输入日期日历样式

javascript - ES6 用箭头函数给变量赋值

javascript - JSON 响应未根据 SQL 查询正确排序

带有@angular/pwa 包的 Angular Service Worker 离线时显示 `HTTP error 504`

google-chrome - Chrome 询问 "Do you want google to save your password"后 Watir 挂起