HTMLコードの次の行に移動する前にJavascript関数が終了するようにする方法。HTMLでJavascript関数の完了を待つ
たとえば:私はmain()
にJavascriptコードを持っており、下記のようにthtを呼び出しています。これが終わる前に、JPEGを読み込むようなHTMLコードの次の行がWebブラウザに表示されます。 main()
コールが完全に実行されるようにする方法はありますか。あなたの一部として
<script language="JavaScript" type="text/javascript"> main();</script>
は、私は、ウェブページを形成するために必要な値の一部を取得するXMLHTTPRequestを()を使用しています(メイン内asynchroousコール)があり、正しく推測しました。関数mainこのその他以内
function main()
{
var requestor = new net.Requestor("admin/getparam.cgi?mainvideostream&codectype", CurrentHandler);
}
とnet.Requestor =関数(URL、オンロード、ONERROR、方法、paramsは、contentTypeの) 以下のようにして、XMLHTTPRequestを(...)
されCurrenthandlerは、requsetからの応答を処理する別の関数です。
function CurrentHandler()
{
settings = this.req.responseText.split("\n");
for(var j=0; j<settings.length-1; j++)
{
var currentST= settings[j].split("=");
name = currentST[0];
value = currentST[1];
switch(name)
{
case "mainvideostream": cur_camid = value; break;
case "codectype": stream = value; break;
}
}
mainSection();
}
したがって、ページをロードする前にストリーム変数を調べる必要があります。
私は 'main'機能は、いくつかの非同期コードを持っていると仮定しています。あなたは機能するコードを表示できますか? –
JavaScriptのこのビットが完了するまで、ページ全体の読み込みを遅らせると思っていますか? – Jimmery
JavaScriptが非同期で実行され、ページが非同期に読み込まれます。 JSでブロックする方法はいくつかありますが(非常に悪い考えですが)、ブラウザが同時に他のものをロードするのを防ぐことはできません(ユーザーがサイトを試して制御しようとすることもありません)。問題は、なぜこの機能を望んでいる/必要としているのかです。 – Rudu