У меня есть эти программы, которые должны выполняться синхронно, но никогда не работают.Есть ли необходимость использовать обратный вызов.Мне нужно дождаться ответа дочернего элемента, чтобы продолжить родительский процесс.
Проблема с прикрепленным кодом заключается в том, что предупреждающее сообщение всегда появляется до появления всплывающего дочернего элемента.Я хочу, чтобы всплывающее окно заполнило входное текстовое значение на родительском экране, а затем закрылось.Родительское окно будет обрабатывать базу на основе введенного текстового значения.
Миллион благодарностей заранее!
Родительская программа:
<html>
<head></head>
<body>
<script>
var dsp_msg;
function PopupCenter(url, title, w, h) {
// Fixes dual-screen position Most browsers Firefox
var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screenX;
var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screenY;
var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
var left = ((width / 2) - (w / 2)) + dualScreenLeft;
var top = ((height / 2) - (h / 2)) + dualScreenTop;
var newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
// Puts focus on the newWindow
if (window.focus) {
newWindow.focus();
}
}
function call_child() {
PopupCenter('DisplayQuestion1.htm','Prompt Question','900','500'); // open popup
var ans_from_popup = document.getElementById("returnval").value;
console.log(ans_from_popup);
if (ans_from_popup) { dsp_msg = " correctly. "; }
if (!ans_from_popup) { dsp_msg = " wrongly."; }
alert("Player answered " + dsp_msg + " Is the player deserve another chance? ");
}
</script>
<input type="button" value="Click" onclick="call_child();">
<input type="text" id="returnval" >
</body>
ДочернийПрограмма:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p id="PQuestion">
7 x 7 = ?
</p>
<form>
<br><input type='radio' name='optradio' value='39' required>39 <label id="Radio1"></label>
<br><input type='radio' name='optradio' value='40' required>40 <label id="Radio2"></label>
<br><input type='radio' name='optradio' value='49' required>49 <label id="Radio3"></label>
<br><input type='radio' name='optradio' value='50' required>50 <label id="Radio4"></label><br />
<br>
<input type="button" name="Close" id="Quit" value="Submit" onclick="return quitBox('quit');" />
</form>
<script>
function quitBox(cmd)
{
var radioSel = document.forms[0];
var txt = "";
var i;
for (i = 0; i < radioSel.length; i++) {
if (radioSel[i].checked) {
txt = radioSel[i].value;
}
}
var AnswerFlag;
if (txt == 49) {
alert('Your selection of ' + txt + ' is correct!');
AnswerFlag = true;
}
else
{ alert('Your selection of ' + txt + ' is wrong!');
AnswerFlag = false;
}
//prompt("in Display question - " + localStorage.getItem("Resultsent"));
if (cmd=='quit')
{
if (window.opener != null && !window.opener.closed) {
var txtName = window.opener.document.getElementById("returnval");
txtName.value = AnswerFlag;
}
// end taken script
open(location, '_self').close();
}
return false;
}
</script>