我正在尝试在我的脚本在后台运行时显示警报,但似乎会发出警报以阻止网站上的所有内容。是否有任何方法可以防止这种情况并在警报显示时使脚本运行?功能:function jobbig()
{
alert("JOBBIGT");
}
代码我想在警报显示时运行:`
}
function changez() {
if(y == 1) {
colour = "red";
y = 2;
}
else if(y == 2)
{
colour = "green";
y = 3;
}
else if(y == 3)
{
colour = "black";
y = 4;
}
else if(y == 4)
{
colour = "yellow";
y = 5;
}
else if(y == 5)
{
colour = "cyan";
y = 6;
}
else if(y == 6)
{
colour = "white";
y = 1;
}
document.getElementById("head").style.color = colour;
}`
function change() {
if(x == 1) {
color = "black";
x = 2;
}
else if(x == 2)
{
color = "white";
x = 3;
}
else if(x == 3)
{
color = "yellow";
x = 4;
}
else if(x == 4)
{
color = "red";
x = 5;
}
else if(x == 5)
{
color = "green";
x = 6;
}
else if(x == 6)
{
color = "cyan";
x = 7;
}
else if(x == 7)
{
color = "purple";
x = 1;
}
else if(x == 1337)
{
color = "white";
}
document.body.style.background = color; }
代码由function andrafarg30() {
clearInterval(interval2);
clearInterval(interval3);
clearInterval(intervall2);
clearInterval(intervall3);
x = 1;
y = 1;
interval1 = setInterval(change, 30);
intervall1 = setInterval(changez, 45);
}
运行,由按钮调用。警报也可以通过按钮调用。
答案 0 :(得分:0)
将jQuery UI Dialog组件与modal: true
选项一起使用,而不是使用Window.alert函数。
执行以下操作:
将对jQuery UI的引用放到您站点的标题中
<script
src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
之后
jquery.js inlude。
将function jobbig() { alert("JOBBIGT"); }
更改为function jobbig() { var tag = $('<div>JOBBIGT</div>'); tag.dialog({modal: true}); }
如果您需要以某种方式自定义对话框,请参阅demo。
答案 1 :(得分:0)
使用非阻塞alert
可能是一个坏主意,尤其是在循环中,但是可能。实现它的最简单方法是通过非阻塞的其他方式运行它,例如setTimeout
function makeNonBlocking(func, context) {
if (!context) context = null;
return function () {
var args = arguments;
setTimeout(function () {func.apply(context, args)}, 0);
};
}
var myAlert = makeNonBlocking(alert);
myAlert('foo');
console.log('bar'); // appears before user okays `foo` alert
myAlert('baz');
为什么不考虑使用console.log
呢?