在显示警报窗口之前,我需要删除视频元素、画布和画布上的按钮,一旦用户按下警报窗口上的ok按钮,我需要显示一些其他元素。目前我面临以下问题。
下面是Javascript代码。
$("#remoteVideo").remove();
$("#localCanvas").remove();
$(".terminate_session_btn").remove();
// USED setTimeout TO DELAY THE DISPLAY OF ALERT WINDOW. WITHOUT
// setTimeout, ALERT WINDOW IS GETTING DISPLAYED BEFORE DELETING THE BUTTON.
setTimeout(function() {
displayAndProcessUserTerminateAlertDialog();
}, 200);
function displayAndProcessUserTerminateAlertDialog() {
socket.close();
alert("User terminated the video call. Press 'Ok' button to create new session.");
// BELOW CODE IS GETTING EXECUTED WITHOUT STOPPING FOR USER ACTION ON ALERT WINDOW.
$(".main_container .item").hide();
$("#video-session-menu").removeClass("active");
$("#images-menu").removeClass("active");
$(".sidebar ul li a").addClass("disabled");
}
任何人都可以帮助我理解为什么在用户按下警报窗口上的“确定”之前,代码执行不会停止,以及如何解决此问题。
更新:
有趣的是,如果我打开开发人员工具,问题就不会发生。若我不打开开发人员工具,问题总是会发生。我不知道如何解决这个问题。
显然浏览器没有警报的标准行为。因此,您可能希望使用您喜欢的行为实现自己的警报。您可以在此处进行测试:https://jsfiddle.net/rf0jd7te/1/
<!-- The Modal -->
<div id="myModal" class="modal">
<!-- Modal content -->
<div class="modal-content">
<span class="close">×</span>
<p>Alert Window</p>
<p>
<input type="button" value="OK">
</p>
</div>
</div>
/* The Modal (background) */
.modal {
display: none; /* Hidden by default */
position: fixed; /* Stay in place */
z-index: 1; /* Sit on top */
left: 0;
top: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
overflow: auto; /* Enable scroll if needed */
background-color: rgb(0,0,0); /* Fallback color */
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}
/* Modal Content/Box */
.modal-content {
background-color: #fefefe;
margin: 15% auto; /* 15% from the top and centered */
padding: 20px;
border: 1px solid #888;
width: 80%; /* Could be more or less, depending on screen size */
}
/* The Close Button */
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
}
.close:hover,
.close:focus {
color: black;
text-decoration: none;
cursor: pointer;
}
JS
console.log("before alert");
var modal = document.getElementById("myModal");
// Get the <span> element that closes the modal
var span = modal.getElementsByClassName("close")[0];
// Get the OK element that closes the modal
var OK = modal.querySelector("input[type=button]");
// When the user clicks on <span> (x), close the modal
function close() {
modal.style.display = "none";
console.log("after alert");
}
OK.onclick = span.onclick = function() {
close();
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modal) {
close();
}
}
modal.style.display = "block";
我只是通过终端安装android studio,我的ubuntu版本是14.04。我的计算机上已经安装了Java8。我安装android studio的程序正是这样的: sudo apt-add-repository ppa:paolorotolo/android-studio
问题内容: 我想做这样的事情: 如何捕获对话框中的输入? 问题答案: 需要有两个处理程序,一个和一个。见下文。这将确保,如果在对话框中单击“取消”,则不会触发。但是,如果单击“确定”,将执行并将运行必要的代码。这可以用于释放数据库锁,整洁地关闭打开的会话等。
问题内容: 我在这里尝试取消文件上传时遇到了一些情况。我所做的事情是说,如果用户单击“取消”按钮,则它将仅删除iframe,这样它就不会进入将文件上传到服务器并将数据插入数据库的页面。 现在,如果用户快速单击“取消”按钮,则可以正常工作,但我意识到的问题是,如果用户单击时间很晚,则有时无法及时删除iframe该文件刚刚在用户点击“取消”按钮之前上传。 因此,我的问题是,如果用户在单击“取消”按钮之
问题内容: 我在更新面板中更新时使用以下代码显示消息 它工作正常。 但是,当我在使用重定向后,它将加载页面而不显示消息。我希望用户看到该消息,并在单击“确定”后应重定向。 问题答案: 使用javascript显示警报,然后使用相同的方法进行重定向:
当用户按下ctrl键时,我试图在Chrome中保存HTML文件,但Chrome崩溃了。 (我只想下载HTML文件的源代码) 我读到它发生是因为我的文件比1.99M大... 在第一次尝试中(在我知道Chrome崩溃之前): 第二次尝试,在我读到崩溃后,我使用了: 这里我得到了错误: 我不知道,但我读到我需要将我的字符串编码为base 64:如何在JavaScript中将字符串编码为Base64? 有
问题内容: 我正在使用带有javascript启用功能的webview,因为它在我的应用程序中是必需的。我的问题是,在网络视图中加载网址时,我需要避免弹出窗口,有没有办法做到这一点? 我遇到过onJsAlert()方法,但是根据androids文档 这不是我想要的。我想避免弹出窗口和警报框(包括提示和确认),将不胜感激 谢谢! 问题答案: 您可以尝试覆盖警报,确认等。也许在何时允许和何时不允许警报