javascript - 如何在窗口中显示计数器并使其关闭?
问题描述
我有这段代码,其中单击按钮时会打开一个窗口并出现一个计数器,该计数器是 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>
解决方案
所以,这段代码有很多问题:
您正在加载加载
contar
函数,直到那时,ventana 才会undefined
出现,因此当您执行类似的操作ventana.whatever
(尝试访问未定义的属性)时会出现错误。由于新页面中的文档在创建时没有跨度
id = contador
,因此该行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
。然后我们添加innerHTML
一个span
。
HTML 部分不需要更改。
推荐阅读
- c++ - 链接 sqlite3 库的 Eclipse 问题
- docker - 如何在 Docker 中运行 sudo 命令?
- machine-learning - 如果我有文本特征和数字特征,如何为 GridsearchCV 设置管道?
- javascript - TypeError:无法读取未定义的属性“分数”-赛普拉斯/Javascript
- time-series - 时间序列数据中 PACF 图中的异常极值
- firebase - Firebase Storage Flutter 显示图像加载时间过长
- javascript - React 抛出错误 - TypeError: Cannot read properties of undefined (reading 'greet')
- flutter - 参数类型“AnimationController?” 不能分配给参数类型“Listenable”
- mysql - SQOOP 将 HDFS 导出到 MYSQL 数据库
- javascript - 满足 querySelectorAll 的节点列表中多个文本值的条件