Javascript 禁用警报中的“确定”按钮
有没有办法在java脚本中禁用警报的“Ok”按钮 我有一个java脚本函数,它调用两个不同的窗口,第二个窗口弹出被警报延迟,因为我需要在第一个打开的窗口中完成某些操作后打开它。我需要禁用警报,直到第一个窗口中的某些操作完成。请提出一些建议 下面是通过单击按钮调用的js函数(myFunction()),打开两个窗口:Javascript 禁用警报中的“确定”按钮,javascript,jsp,alert,Javascript,Jsp,Alert,有没有办法在java脚本中禁用警报的“Ok”按钮 我有一个java脚本函数,它调用两个不同的窗口,第二个窗口弹出被警报延迟,因为我需要在第一个打开的窗口中完成某些操作后打开它。我需要禁用警报,直到第一个窗口中的某些操作完成。请提出一些建议 下面是通过单击按钮调用的js函数(myFunction()),打开两个窗口: function myFunction() { myFunction2(); alert("Please wait...");
function myFunction() {
myFunction2();
alert("Please wait...");
myFunction1();
}
function myFunction2() {
var x ="sce";
var URL ="Multiple.jsp?viewStatus="+x;
var windowName = "showDeb";
var width = screen.availWidth;
var height = screen.availHeight;
var w = 900;
var h = 500;
var features =
'width=' + w +
',height=' + h +
',left=' + ((width - w - 10) * .5) +
',top=' + ((height - h - 30) * .5) +
',directories=no' +
',location=no' +
',menubar=no' +
',scrollbars=yes' +
',status=no' +
',toolbar=no' +
',resizable=false';
var strOpen = window.open (URL, windowName, features);
strOpen.focus();
myFunction1();
}
function myFunction1() {
var x ="deb";
var URL ="Multiple.jsp?viewStatus="+x;
var windowName = "showSce";
var width = screen.availWidth;
var height = screen.availHeight;
var w = 900;
var h = 500;
var features =
'width=' + w +
',height=' + h +
',left=' + ((width - w - 10) * .5) +
',top=' + ((height - h - 30) * .5) +
',directories=no' +
',location=no' +
',menubar=no' +
',scrollbars=yes' +
',status=no' +
',toolbar=no' +
',resizable=false';
var strOpen = window.open (URL, windowName, features);
strOpen.focus();
}
我建议您使用cookies在窗口之间进行通信。 在窗口1中,一旦进程完成,就设置cookie
var date = new Date();
date.setDate(date.getDate()+1);
document.cookie = "name=win1; path=/; expires="+date.toGMTString()
在将打开窗口2的父文件中,添加计时器以等待窗口1设置cookie
var myVar = setInterval(myTimer, 1000); // Poll every second to check if window 1 has completed its execution by checking cookie.
function myTimer() {
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
if (cookies[i].trim() == "name=win1") {
// stop timer and open win 2
clearTimeout(myVar);
document.getElementById("msg2").innerHTML = "Process in window 1 completed";
// <<< Open window 2 here >>>
var dateNow = new Date();
document.cookie = "name=win1; path=/; expires="+dateNow.toGMTString();
}
}
下面是一个例子,说明了这一点。确保您允许弹出窗口,因为它将尝试打开新窗口。
谢谢你的建议。但我有一个问题,我从上面了解到,如果我知道在窗口1中完成流程所需的时间,我可以使用这种方式。在我的情况下,时间不是固定的,它可以更多地基于数据,您不需要知道在窗口1中完成流程所需的时间。正如您所说,在窗口1中运行的进程是基于数据的,一旦进程完成,您将需要设置cookie。父窗口中打开窗口2的计时器将每秒轮询一次(可配置),以检查cookie是否已设置,直到窗口1设置cookie为止。您还可以保持超时(如30分钟),以防您想要在父级中停止无限时间的轮询。
var dateNow = new Date();
document.cookie = "name=win1; path=/; expires="+dateNow.toGMTString();