У меня есть кнопка, которая откроет новое пустое окно с помощью window.open
, но напишет в нем таблицу умножения.
Вот мой код.
document.getElementById("p").innerHTML = "<button id = 'mult' type = 'button'>Multiplication Tables</button>";
document.getElementById("mult").onclick = function() {
newWindow()
};
document.getElementById("close").onclick = function() {
close()
};
function newWindow() {
var multiplyWindow = window.open("", "multiplicationTables", "width = 300, height = 200");
multiplyWindow.document.write(multiply());
}
function multiply() {
document.write("<center><table border='1px'>");
for (var a = 5; a < 11; a++) {
document.write("<tr style='height:40px'>");
for (var b = 5; b < 11; b++) {
document.write("<td style='width:40px'><center><font size='4'>" + a * b + "</center></font></td>");
}
document.write("</tr>");
}
}
<p id="p"></p>
Я знаю, что проблема в том, что когда я запускаю функцию multiply()
, мы вкладываем document.write
. Я думал об использовании document.getElementById
, но проблема в том, что (я думаю) нет идентификатора нового окна, открытого с помощью window.open
.
Вместо этого происходит то, что таблица умножения печатается в исходном окне, а в новом всплывающем окне появляется неопределенное сообщение. Это имеет смысл, опять же из-за вложенных document.write
s.
Два вопроса:
- Как исправить это вложенное
document.write
и заставить его работать? - Есть ли способ назначить идентификатор новому окну с помощью
window.open
?
Кроме того, я смотрю на этот пост SO: document.write, вложенный в document.write, но единственным ответом было просто не использовать document.write
.
Заранее спасибо.
"
после</button>
, но есть и другие вещи. - person mplungjan   schedule 17.07.2020