javascript刷新阻止cgi执行

javascript refresh prevents cgi execution

本文关键字:cgi 执行 刷新 javascript      更新时间:2023-09-26

我正在尝试在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执行后,是否有其他方法可以刷新页面?

您可以为iframe设置一个onload处理程序,以便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"
}