0

私は、ユーザーが明確な原語の一連の翻訳を Google 翻訳で処理される言語に次々と呼び出すインタラクティブなプログラムを持っています。ユーザーは子ウィンドウを自分で閉じる必要はありません。これは、Google 翻訳が生成する翻訳の種類に応じて、ユーザーが結論に気付くとすぐにプログラムを実行します。プログラムが page.close() を実行する必要があった後に特定のウィンドウを閉じることができないとプログラムが報告するという問題を解決するために、私はすでに何週間も試みました。私は今、ブラウザが閉じるのに時間がかかり、その後ウィンドウが閉じられたことを検出できるという解決策に近づいていると思います。基本的に、まだ私の希望に沿わないコードは読み取ります

function loadpage() {
    page=window.open("url-code for calling specific translation by GT", "GT", "scrollbars=1, resizable=1, height=400, top=200, left=300, width=400", true);
}

function crucial() {
    page.close();
    setTimeOut(function() {
        if (page.closed) {
            alert("succesful closing");
        } else {    
            alert("The window can't be closed!");
        }
    }, 5000);
}

ああ!2 つのアラートのどちらも表示されません。場合によっては、遅延時間 ? によっては、ウィンドウが閉じることがあります。if (!page.closed) によって遅延関数の内部をチェックするように Bergi から得たアドバイスは機能しませんでした。次の条件を満たす必要があるようです。 1. setTimeOut 関数を宣言します。2. function() {alertcheck()} の形式で優先関数を作成します (遅延時間は問題ではないようです。とにかく 0 でも機能します。)

    var timeoutID;
function preferential() {
timeoutID = window.setTimeout(function(){alertcheck()}, 0);
}
function alertcheck()  {
if (page.closed) {
    alert("succesful closing");
} else {    
    alert("The window could not be closed!");
}
}

なぜそうなのか、とても興味があります。少なくとも、読者が同じ結果でこの実験を繰り返すことができることを願っています.

4

1 に答える 1

0

プログラムは、プログラムが page.close() を実行する必要があった後、特定のウィンドウを閉じることができないと報告します

閉じた窓は閉められません。常に使用する必要があります

if (!page.closed)
    page.close(); 
于 2013-10-05T19:59:14.870 に答える