我正在开发一个供测试人员使用的简单界面,我将其编写为 HTML 页面。我需要做的是在用户按下按钮时打开一个特定的 URL(该 URL 会触发另一台服务器上的 Hudson/Jenkins 作业)。这是我用来完成此操作的代码:
function triggerJob() {
var url = "...";
var trigger = window.open(url);
setTimeout(function() {trigger.close();}, 1000);
}
几点注意事项:
- 我知道这是完成我想做的事情的不好方法。我已经使用 jQuery 实现了该解决方案,并且由于某种原因,在以这种方式查询 URL 时,Hudson 服务器上的工作没有启动。奇怪的是,当我在同一台机器上使用 Ruby 脚本查询它时,它工作得很好。
- 我必须做超时,因为如果我只是打开窗口然后立即关闭它,浏览器会做它应该做的事情,但是对于 Hudson 服务器来说注册它并开始工作太快了。
trigger.close();
除了匿名函数之外,我还尝试过将其他语句放入其中,但它们也没有被执行。毫无疑问,setTimeout 没有执行它应该执行的块。
谢谢你能给我的任何帮助。我已经玩了几个小时了,无法弄清楚为什么我的代码没有正确执行超时。