Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以模拟像';window.confirm()'?;_Javascript_Html_Block_Simulation_Confirm - Fatal编程技术网

Javascript 是否可以模拟像';window.confirm()'?;

Javascript 是否可以模拟像';window.confirm()'?;,javascript,html,block,simulation,confirm,Javascript,Html,Block,Simulation,Confirm,我想用DIV+JavaScript模拟window.alert()、window.confirm()、或window.prompt()等块对话框。使用回调函数似乎很容易。但我想在显示确认对话框时阻止该过程 也就是说,我想定义一个函数,如: var Alert = function(){ balabala }; 单击“确定”或“取消”后,返回true或false 编辑: 现在我定义了一个名为Confirm()的函数,现在我必须像这样调用它 Confirm(*callback*); if(Con

我想用DIV+JavaScript模拟
window.alert()
window.confirm()
、或
window.prompt()
等块对话框。使用回调函数似乎很容易。但我想在显示确认对话框时阻止该过程

也就是说,我想定义一个函数,如:

var Alert = function(){ balabala };
单击“确定”或“取消”后,返回
true
false

编辑

现在我定义了一个名为
Confirm()
的函数,现在我必须像这样调用它

Confirm(*callback*);
if(Confirm()) {
    callback(); 
} else {
    balabala;
}
在实现中,我显示了一个类似确认的对话框,当单击OK时,将执行回调。我想知道是否有可能重写它,这样我就可以像这样称呼它了

Confirm(*callback*);
if(Confirm()) {
    callback(); 
} else {
    balabala;
}

在用户返回您的浏览器之前,您无法阻止用户使用浏览器IE切换选项卡并在其上执行其他操作,就像调用
alert()
一样。但在他们回答问题之前,你可以阻止他们使用你页面上的任何内容。你可以用一个绝对定位的div填充整个页面,该div的z-index比页面的其余部分大,然后给弹出窗口一个比该div高一个的z-index并将其居中

当然,用户仍然可以使用诸如Chrome开发者工具或Firebug之类的工具来删除阻塞div,所以这不是一件安全的事情

编辑我误解了你的问题。您不关心在视觉上阻止页面,但希望使弹出窗口的返回值与脚本的其余部分同步,而不是与回调异步。我不知道该怎么办


也许这会对您有所帮助:

不幸的是,仅仅用JavaScript无法模拟同步代码调用。您可以创建纯粹的基于DOM的对话框,但为了在它们关闭时执行代码,您需要让它接受回调或返回承诺。不幸的是,这并不是最干净的代码。

是的。关于细节,我现在定义了一个名为Confirm()的函数,现在我必须像“Confirm(*callback)”那样调用它,在实现中,我显示了一个类似Confirm的对话框,单击OK时将执行回调。我想知道是否有可能重写它,这样我就可以像“if(Confirm())callback();else balabala”那样调用它。如果你能阻止整个过程,我会将它作为一个bug报告给浏览器创建者。您应该能够阻止javascript的唯一一件事是在单个选项卡中执行javascript。