В заключение рассмотрим ситуацию, когда в странице необходимо создать скрытый плавающий фрейм IFRAME, чтобы загружать в него некоторое содержимое, и необходимо реализовать передачу извещения, когда содержимое будет загружено. В отличие от функции dojo.io.iframe.send, которая создает элемент IFRAME и тут же посылает запрос на получение содержимого, функция dojo.io.iframe.create создает элемент IFRAME и позволяет определить фрагмент программного кода JavaScript, который будет выполнен после того, как создание и наполнение фрейма завершится. Эта функция имеет следующую сигнатуру:
dojo.io.iframe.create(/*String*/frameName, /*String*/onLoadString,
/*String?*/url)//Возвращает DOMNode
В сущности, вы должны определить имя фрейма, строковое значение, которое будет рассматриваться как функция обратного вызова, и не обязательный адрес URL для фрейма. Ниже приводится пример, который загружает содержимое адреса URL в скрытый плавающий фрейм IFRAME на странице и по окончании загрузки вызывает функцию обрат
ного вызова:
<html>
<head>
<title>Fun with IFRAME Transports!</title>
<script type="text/javascript"
src="http://o.aolcdn.com/dojo/1./dojo/dojo.xd.js"
djConfig="isDebug:true,dojoBlankHtmlUrl:'/path/to/blank.html'"
</script>
<script type="text/javascript">
dojo.require("dojo.io.iframe");
function customCallback() {
console.log("callback!");
//здесь можно сослаться на фрейм с помощью
//dojo.byId("fooFrame")...
}
create = function() {
dojo.io.iframe.create("fooFrame", "customCallback()",
"http://www.exmaple.com");
}
</script>
</head>
(body)
(button onclick="javascript:create();")Create(/button)
(/body)
</html>
Чаще всего вы будете немедленно загружать содержимое в элемент IFRAME, но иногда бывает необходимо просто создать пустой фрейм. Если вы пользуетесь версией инструментального набора для локальной работы, то для создания пустого фрейма достаточно всего лишь опустить третий параметр в вызове функции dojo.io.iframe.create. Если же вы пользуетесь версией XDomain, то вам необходимо будет указать путь к локальному шаблону, представляющему содержимое. В каталоге с инструментальным набором этот шаблон находится в файле dojo/resources/blank.html, который можно скопировать в удобное для вас местоположение. Кроме того, прежде чем создавать IFRAME, в массив djConfig необходимо добавить дополнительный параметр настройки, как показано в примере следующего раздела.