3

window.location.assign でページをロードした後に JavaScript 関数を呼び出すことは可能ですか? 私はこのコードを持っています。

<script language="javascript" type="text/javascript">
function Loadspirit(){
  window.location.assign("spirituality.php");
  ReadEnglish();
}
</script>

ページをロードし、ReadEnglish() を呼び出します。これは、spirituality.php で定義されている関数です。関数は実行されません。関数を実行させる方法は何でしょうか?

4

3 に答える 3

5

新しい window.location を割り当てるとすぐに、ブラウザーは現在のブラウザー ウィンドウに新しいページの読み込みを開始します。これにより、このウィンドウ内のすべての JavaScript の実行が停止し、新しいページの読み込みが開始されます。その時点から、新しいページの JavaScript のみが実行されます。その新しいページが読み込まれた後に関数が必要な場合は、そのコードを新しいページに配置する必要があります。その関数を新しいページで常に実行したい場合は、その新しいページのコードを設定して、ページが読み込まれたときに常にその関数を実行することができます。

この特定のコンテキストから呼び出されたときにのみ新しい関数を新しいページで実行する場合は、新しいページにいくつかの情報を渡す必要があり、新しいページのコードはその情報を探して実行するかどうかを決定する必要があります。 ReadEnglish() 関数かどうか。新しいページに情報を渡す一般的な方法は次のとおりです。

  1. URL 内のクエリ パラメータ (「?run=English」のような ? マークの後の URL 内の項目)。
  2. クッキーに設定する情報
  3. 新しいページと同じオリジンで認識されている他のウィンドウ/フレームの Javascript 変数。

これが永続的な設定ではなく、この特定の時間にこのオプションを不定期に実行する場合、クエリ パラメータがよく使用されます。

これがより永続的な設定である場合、Cookie はよく使用されます。

于 2011-07-08T17:26:08.420 に答える
1

私はあなたがそれを行うことができるとは思わない. あなたの最善の策は、jqueryライブラリを使用してから、次のようにすることです。

$("body").load("spirituality.php", function() {
    ReadEnglish();
});
于 2011-07-08T17:17:18.010 に答える
0

いいえ。JavaScriptの過去window.location.assignは決して読み取られません。この関数を使用すると、実際にはページを離れて引数に移動できます。

現在のページにとどまり、JavaScriptにアクセスしたい場合は、spirituality.phpAJAXを介してロードする必要があります。実際に「spirituality.php」に移動してロードしようとしている場合はReadEnglish();、で関数を呼び出す必要がありますspirituality.php

于 2011-07-08T17:21:37.583 に答える