在我的代码中,当单击一个按钮打开一个窗口时,一个计数器出现在1到100之间的随机数之间,它计数到0并且窗口关闭,但是我不知道我做错了什么,因为我打开的窗口中没有出现任何东西。在这里,我保留了部分html代码,因为我决定通过提供一个按钮和javascript来打开它。
var ventana;
function abrir() {
ventana = window.open("", "new_window", "width=800,height=500,status=no,toolbar=no,menubar=no");
}
window.onload = contar;
function contar() {
var contartiempo = Math.floor(Math.random() * 100);
ventana.document.getElementById('contador').innerHTML = contartiempo;
if (contartiempo == 0) {
ventana.close();
}
ventana.document.write(" tu contador:<span id = contador></span>") //quiero que se muestre en la ventana abierta el contador
}<body>
<input type="submit" value="Abrir" onclick="abrir()">
</body>
发布于 2021-11-06 13:56:45
因此,在这个代码中有很多值得关注的问题:
contar函数,在此之前,ventana是undefined,因此当您执行ventana.whatever之类的操作(试图访问未定义的属性)时,会出现一个错误。由于新页面中的文档在创建时没有使用
ventana.document.getElementById('contador').innerHTML = contartiempo;也将失败。要解决这个问题:
var ventana;
function abrir() {
ventana = window.open("", "new_window", "width=800,height=500,status=no,toolbar=no,menubar=no");
contar()
}
function contar() {
if (ventana) {
var contartiempo = Math.floor(Math.random() * 100);
ventana.document.write(" tu contador:<span id = contador></span>") //quiero que se muestre en la ventana abierta el contador
ventana.document.getElementById('contador').innerHTML = contartiempo;
if (contartiempo == 0) {
ventana.close();
}
}
}在这里,在打开新窗口后,单击父文档中的按钮调用contar函数。然后,我使用ventana.document.write将span &另一个布局放在页面上。然后,我们将向该innerHTML添加一个span。
HTML部件不需要任何更改。
发布于 2021-11-06 14:53:11
我已经解决了我的问题,代码显示一个窗口,执行计数器并关闭该窗口,这里是结果。
var ventana;
function abrir() {
ventana = window.open("", "new_window", "width=800,height=500,status=no,toolbar=no,menubar=no");
contar()
}
window.onload = contar//para que cuando
var contartiempo = Math.floor(Math.random() * 100);
function contar() {
if (ventana) {
ventana.document.write(" <span id = contador></span>") //quiero que se muestre en la ventana abierta el contador
ventana.document.getElementById('contador').innerHTML = contartiempo;
if (contartiempo == 0) {
ventana.close();
} else{
contartiempo-=1;
setTimeout("contar()",1000);
}
}
}https://stackoverflow.com/questions/69864451
复制相似问题