15

当我使用 javascript 警报时,它会出现在浏览器的顶部,而不是当前版本的 chrome 的中心位置。我怎样才能控制它,并使它以javascript为中心。在 Firefox 和 IE 中,它工作得很好。我当前的 chrome 版本 30.0.1599.66

对于所有类型的浏览器和所有版本,我想将警报框定位在浏览器的确切中心。请帮忙........

任何其他关于提供警报以使其居中的简单想法也将是可观的......

4

4 回答 4

7

依赖浏览器发出警报对任何人来说都不是一个好的选择。它们变化迅速,并且对于不同的浏览器并不相同。

我发现有用的是使用Alertify JS来满足所有警报需求。您可以根据自己的需要对其进行自定义,无论如何它看起来都很棒。

于 2013-10-03T06:13:37.590 回答
3

由于它是默认框,因此您无法定位它,尽管您可以创建自己的并相应地定位它.. 试试这个 http://jqueryui.com/dialog/

于 2013-10-03T06:21:16.823 回答
3

您希望 alert() 对话框位置居中。试试这个简单的 script.js

// alertMX -  improve alert()

$("<style type='text/css'>#boxMX{display:none;background: #333;padding: 10px;border: 2px solid #ddd;float: left;font-size: 1.2em;position: fixed;top: 50%; left: 50%;z-index: 99999;box-shadow: 0px 0px 20px #999; -moz-box-shadow: 0px 0px 20px #999; -webkit-box-shadow: 0px 0px 20px #999; border-radius:6px 6px 6px 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; font:13px Arial, Helvetica, sans-serif; padding:6px 6px 4px;width:300px; color: white;}</style>").appendTo("head");

function alertMX(t){
$( "body" ).append( $( "<div id='boxMX'><p class='msgMX'></p><p>CLOSE</p></div>" ) );
$('.msgMX').text(t); var popMargTop = ($('#boxMX').height() + 24) / 2, popMargLeft = ($('#boxMX').width() + 24) / 2; 
$('#boxMX').css({ 'margin-top' : -popMargTop,'margin-left' : -popMargLeft}).fadeIn(600);
$("#boxMX").click(function() { $(this).remove(); });  };

包含 Jquery 并使用 javascript:

alertMX('Hello!');
于 2014-08-28T15:17:45.260 回答
1

您无法控制浏览器显示警报的方式。相反,您应该编写自己的函数来显示带有消息的 div。它可能是这样的:

function customAlert(msg) {
var alertDiv = "<div style='position: fixed; top: 20px; left: 20px;'>"+msg+"</div>";
document.getElementsByTagName('body')[0].appendChild(alertDiv);
}

当然,您应该在那里进行一些计算以将 div 正确定位在您想要的位置。如果您使用 jQuery 或其他一些 js 框架,它也会容易得多......

[编辑] 如果您想强制从 JS 弹出,请尝试类似的操作。 弹出示例

于 2013-10-03T05:46:33.347 回答