新手-mac上控制Chrome的Javascript代码
我一直在通过openstack学习javascript,需要一些指导,我已经编写了以下代码,用chrome(我的默认浏览器)打开一个网站,等待5秒钟,然后使用do/while循环刷新10次 当我想从终端运行它时,它看起来正常吗?我一直在Chrome开发者控制台中运行这个程序,我想在我的mac(10.9.5)上运行它,这是通过automator运行的吗 非常感谢您的帮助新手-mac上控制Chrome的Javascript代码,javascript,macos,google-chrome,Javascript,Macos,Google Chrome,我一直在通过openstack学习javascript,需要一些指导,我已经编写了以下代码,用chrome(我的默认浏览器)打开一个网站,等待5秒钟,然后使用do/while循环刷新10次 当我想从终端运行它时,它看起来正常吗?我一直在Chrome开发者控制台中运行这个程序,我想在我的mac(10.9.5)上运行它,这是通过automator运行的吗 非常感谢您的帮助 var vcount=0; 功能睡眠(时间){ 返回新承诺((resolve)=>setTimeout(resolve,tim
var vcount=0;
功能睡眠(时间){
返回新承诺((resolve)=>setTimeout(resolve,time));
}
做{
window.location.assign(“https://www.w3schools.com");
睡眠(10000)。然后(()=>{});
vcount++;
}
而(vcount<10)代码>您需要使用wait来真正暂停执行:
(async function(){
do {
window.location.assign("https://www.w3schools.com");
await sleep(10000);
vcount++;
} while (vcount < 10);
})();
(异步函数(){
做{
window.location.assign(“https://www.w3schools.com");
等待睡眠(10000);
vcount++;
}而(vcount<10);
})();
有很多方法可以做你想做的事,@JonasW给出了其中一种方法,这里有一种替代方法:
function sleep(ms) {
const waitUntil = new Date().getTime() + ms;
while (new Date().getTime() < waitUntil) true;
}
不,因为睡眠(10000)。然后(()=>{})
不“暂停”-而且,一旦您更改当前位置,此脚本将不再位于当前页面中,因此,无论如何都不会运行啊,谢谢Jonas,我正在尝试查找那种类型的命令,我正在搜索“sleep”和“wait”,然后偶然发现我使用的方法,我将使用您的代码!谢谢你,亚瑟,有什么理由用一种方法胜过另一种方法吗?还有,为什么一个动作有多种方法@PCF是的,有一个原因:并非所有浏览器都支持相同的功能,await
和Promise
是在最新版本的JavaScript中引入的,并且在最新版本的Chrome、Safari和Firefox上都受支持。如果你使用我的方法,它将在更多的浏览器上得到支持,比如IE。是的,在每种编程语言中,都有很多方法可以做同样的事情。这就像同义词。这是一种更糟糕的做法,因为它会冻结浏览器。@JonasW。是的,但如果您以异步方式执行,例如使用setTimeout(yourFunction,0)
,则不会。让我编辑我的答案
setTimeout(function() {
/* Your code */
}, 0)