setTimeout()获取窗口,在setTimeout激活之前显示其他脚本函数
setTimeout() get window to display other script functions before setTimeout activates
我相信这是一个被问过很多次的普遍问题,但无法找到解决方案。
我有javascript使用setTimeout()函数关闭一个弹出窗口,我创建了一段时间后。
问题:如果我在创建弹出窗口的同一脚本中调用setTimeout()函数,则弹出窗口不显示窗口的内容,而是整个功能像单个脚本一样,窗口关闭。这就像你需要以某种方式中断脚本,让它在执行setTimeout之前解析脚本的每个部分。
有人知道为什么或有一个解决方案吗?
<script>
var w;
function closeWindow(){ setTimeout(w.close();, 10000);}
function createWindow(){
//create the popup window.
w=window.open("","",'width=200,height=100');
// put something into the popup window
try{w.document.write('<html><head></head><body><p>the w window</p></body>
<html>')}catch(err){
//handle error here
}
closeWindow();
//closes the createWindow() function
}
</script>
我玩了你的脚本。以下已经过测试并正常运行:
var w;
function closeWindow(){ setTimeout("w.close();", 10000);}
function createWindow(){
//create the popup window.
w=window.open("","",'width=200,height=100');
// put something into the popup window
try{w.document.write('<html><head></head><body><p>the w window</p></body> <html>')}catch(err){
//handle error here
}
closeWindow();
//closes the createWindow() function
}
如果我没记错的话,需要在setTimeout函数的code参数周围加引号,否则你将传递代码的返回值作为setTimeout的参数,而不是它运行所需的代码。
使用setTimeout
的正确语法:
setTimeout(function() {
w.close();
}, 10000);
函数获取字符串字面值,然后计算,或者执行命令的更好选择是一个函数:它可以是现有函数的名称(参见下面的示例),也可以像上面那样,匿名函数。
以不同方式使用该函数的示例:
window.setTimeout(closeWindow, 10000);
功能为:
function closeWindow() {
w.close();
}
尝试如下:
setTimeout(w.close, 10000);
相关文章:
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何在生成下载文件时显示加载动画
- React重新渲染但未显示正确的组件
- nodejs-expressjs上传图像并显示它们
- javascript:在for循环中使用settimeout来定期显示文本
- jQuery显示setTimeout计时器
- Javascript初学者:setTimeout隐藏/显示问题
- 如何使用 setInterval 或 setTimeout 并在计数期间显示结果
- 为什么所有内容都同时显示,在Javascript中使用setTimeout
- 使用setTimeout隐藏/显示延迟后的元素
- 显示模块模式的setTimeout
- setTimeout不工作.控制台显示未定义latLng
- 为什么Javascript显示带有setTimeout函数同步和异步的输出
- 使用setTimeOut在3秒后逐个显示标记.为什么它只显示最后一个标记
- 我想根据它们的时间和持续时间显示json中的元素,并且间隔被settimeout打断
- setTimeout()获取窗口,在setTimeout激活之前显示其他脚本函数
- setTimeout设置Bootstrap模式超时后不显示
- 如何使用jquery的setTimeout()显示消息
- 模型未随setTimeout中的ng显示而更改