0

我正在尝试在 cgi 执行后刷新页面。在我的 cgi 中,一个 tcp 数据包被发送到一个端口。它在隐藏的 iframe 中调用。这是我的javascript代码:

function xx()
{

    iframe = document.getElementById('i');
    iframe.src = path+'?'+ac+'-'+type; // it is sth like that "a.cgi?11-1"

location.reload(true);
}

当我禁用 location.reload cgi 工作但如果我启用它,cgi 不起作用,没有数据包被发送。我试图在执行和重新加载之间设置睡眠,但它也不起作用。cgi执行后还有其他方法可以刷新页面吗?

4

1 回答 1

0

您可以设置一个onload处理程序,iframe以便reload在 iframe 成功加载之前不会触发(这应该意味着您的 cgi 已经执行):

function xx() {

    iframe = document.getElementById('i');
    iframe.onload = function() {
        location.reload(true);
    }
    iframe.src = path+'?'+ac+'-'+type; // it is sth like that "a.cgi?11-1"
}

如果您还想在重新加载之前有一个时间延迟,您可以这样做:

function xx() {
    iframe = document.getElementById('i');
    iframe.onload = function() {
        setTimeout(function() {location.reload(true)}, 5000);
    }
    iframe.src = path+'?'+ac+'-'+type; // it is sth like that "a.cgi?11-1"
}
于 2012-04-05T07:09:25.683 回答