Функция $.getScript()

Функция $.getScript() позволяет загрузить сценарий JavaScript с любого домена. После загрузки сценарий исполняется в глобальном контексте. Формат функции:

$.getScript(<URL>[, <Функция обратного вызова>])

Если во втором параметре указана функция, то она будет выполнена после получения скрипта с сервера. В качестве параметра <Функция обратного вызова> указывается ссылка на функцию следующего формата.

function <Название функции>([<Данные>[, <Статус>]]) {
   // ...
}

Внутри функции обратного вызова доступна ссылка (this) на объект с параметрами запроса. Если данные были получены с того же домена, то через первый параметр будут доступны данные, полученные с сервера, а через второй параметр — статус запроса (значение success — при успешном выполнении). В случае получения данных с другого домена переменные, указанные в параметрах, будут иметь значение undefined. Кроме того, следует учитывать, что при загрузке данных с другого домена функция обратного вызова будет вызвана независимо от результата.

В качестве примера рассмотрим получение и выполнение скрипта с другого домена. Создадим файл index.php (листинг 11.8) и разместим его на домене http://localhost/. С помощью этого файла будем загружать файл script.js (листинг 11.9), расположенный на домене http://site1/.

Листинг 11.8. Содержимое файла http://localhost/index.php

<!doctype html>
<html>
<head>
<title>Функция $.getScript()</title>
<meta charset="utf-8">
<script src="js/jquery.js"></script>
<script>
$(document).ready(function() {
   $(":button").click(function() {
      $.getScript("http://site1/script.js",
         function() {
            if (typeof myStatus != "undefined")
               alert("Данные успешно получены");
            else alert("Проблемы");
         }
      );
   });
});
</script>
</head>
<body>
<input type="button" value="Получить данные">
</body>
</html>

Листинг 11.9. Содержимое файла http://site1/script.js

var myStatus = "OK";
alert("Это данные с другого домена");
Предыдущая статья Все статьи Следующая статья