Если вам не хватает встроенных ajax команд, то всегда можно создать свою. Пример ниже демонстрирует создание команды change_title
, которая изменяет заголовок текущего окна.
Javascript код:
(function($) {
Drupal.ajax.prototype.commands.change_title = function(ajax, response, status) {
document.title = response.title;
}
}(jQuery));
Пример PHP кода:
function mymodule_ajax_callback() {
return array(
'#type' => 'ajax',
'#commands' => array(
array(
'command' => 'change_title',
'title' => 'Hello World',
),
),
);
}
Написанное актуально для
Drupal 7
Похожие записи
- Показать второй шаг многошаговой формы в модальном окне
- Навесить на элемент managed_file свой ajax callback (Как обновить всю форму при загрузки файла в managed_file)
- Восстанавливаем позицию текстового курсора при ajax обновлении формы
- Как выполнять свой js-код до или после любых AJAX запросов (изменение работы AJAX API)
- AJAX в форме корзины Commerce 2
Комментарии
Скажите, пож., можно ли по одной команде ajax_command_my_command выполнить вызов двух различных функций последовательно , т.е.
Drupal.ajax.prototype.commands.my_command = function_name1;
Drupal.ajax.prototype.commands.my_command = function_name2;
Первый вызов находится в core файле, второй - в моем модуле.
Скажите, разве не нужно проверять наличие объекта
Drupal.ajax
перед тем как добавлять команду через прототипирование? Плюс ко всему нужно проверять статус ответа. То есть пример должен выглядеть примерно так:Верно?
Это лишнее.
Добавить комментарий