有没有办法禁用' Ok' java脚本中的警报按钮?
我有一个java脚本函数调用两个不同的窗口,弹出的第二个窗口被一个警告延迟,因为我需要在打开的第一个窗口中完成一些操作后打开它。我需要禁用警报,直到在第一个窗口中完成某些操作。请提出一些建议。
下面是js函数(myFunction()),它在一个按钮上调用,单击打开两个窗口:
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();
}
答案 0 :(得分:0)
我建议使用Cookie在您的窗口之间进行通信。 在窗口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();
}
}
确保在打开第一个窗口之前以及在打开窗口2之后删除cookie,否则在重新运行时会导致问题,因为在窗口1完成该过程之前cookie已经存在。 要删除cookie,只需将到期日设置为当前时间或私密时间。
var dateNow = new Date();
document.cookie = "name=win1; path=/; expires="+dateNow.toGMTString();
这是一个演示相同的例子。确保允许弹出,因为它会尝试打开新窗口。 http://embed.plnkr.co/MVa45iwYuW9asQuYRzBV/