Вызов функции JavaScript после загрузки страницы с помощью window.location.assign. - PullRequest
1 голос
/ 08 июля 2011

Можно ли вызвать функцию javascript после загрузки страницы с помощью window.location.assign?У меня есть этот код.

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

Я загружаю страницу и вызываю ReadEnglish (), функцию, определенную в spirituality.php.Функция не выполняется.Какой способ заставить функцию выполняться?

Ответы [ 3 ]

4 голосов
/ 08 июля 2011

Как только вы назначите новое расположение window.location, браузер начнет загрузку новой страницы в текущем окне браузера.Это останавливает выполнение всего javascript в этом окне и начинает загрузку новой страницы.С этого момента будет работать только javascript на новой странице.Если вам нужна функция после загрузки этой новой страницы, вам придется поместить этот код на новую страницу.Если вы хотите, чтобы эта функция все время выполнялась на новой странице, вы можете просто установить код на этой новой странице, чтобы она всегда выполнялась при загрузке страницы.

Если вы хотите, чтобы эта новая функция запускалась только на новой странице, когда она вызывается из этого конкретного контекста, вам нужно передать некоторую информацию на новую страницу, и код на новой странице должен искать этоинформация, чтобы решить, запускать ли функцию ReadEnglish () или нет.Типичные способы передачи информации на новую страницу:

  1. Параметры запроса в URL (элементы в URL после символа «?», Например «? Run = English»).
  2. Информация, установленная в cookie
  3. Переменные Javascript в других окнах / фреймах, которые известны новой странице и с тем же источником.

Параметры запроса часто используются, если это не такпостоянный параметр, а скорее случайное выполнение этого параметра в это конкретное время.

Файлы cookie часто используются, если это более постоянный параметр, поскольку файл cookie может сохраняться до тех пор, пока вы не откажетесь от него.

1 голос
/ 08 июля 2011

Я не думаю, что вы можете сделать это. Лучше всего использовать библиотеку jquery , а затем сделать что-то вроде:

$("body").load("spirituality.php", function() {
    ReadEnglish();
});
0 голосов
/ 08 июля 2011

Нет.Прошлый javascript window.location.assign никогда не будет прочитан.Эта функция фактически заставляет вас покинуть страницу и перейти к аргументу.

Если вы хотите остаться на текущей странице и иметь доступ к некоторому javascript на spirituality.php, вам нужно будет загрузить его через AJAX.Если вы на самом деле пытаетесь перейти к «spirituality.php» и загрузить ReadEnglish();, вам нужно вызвать функцию на spirituality.php

...