Для всех ajax запросов:
var ajaxBeforeSend = Drupal.ajax.prototype.beforeSend;
Drupal.ajax.prototype.beforeSend = function(xmlhttprequest, options) {
console.log('before send');
ajaxBeforeSend.apply(this, arguments);
}
var ajaxSuccess = Drupal.ajax.prototype.success;
Drupal.ajax.prototype.success = function(response, status) {
console.log('after send');
ajaxSuccess.apply(this, arguments);
}
Для определённого элемента если известен его id, на который уже навешен ajax обработчик:
var ajaxBeforeSend = Drupal.ajax['id-элемента'].beforeSend;
Drupal.ajax['id-элемента'].beforeSend = function (xmlhttprequest, options) {
console.log('before send');
ajaxBeforeSend.apply(this, arguments);
};
var ajaxSuccess = Drupal.ajax['id-элемента'].success;
Drupal.ajax['id-элемента'].success = function (response, status) {
console.log('after send');
ajaxSuccess.apply(this, arguments);
};
Для определённого элемента, если самостоятельно навешиваете ajax обработчик:
Drupal.ajax[...] = new Drupal.ajax(..., this, {
...
beforeSend: function (xmlhttprequest, options) {
console.log('before send');
Drupal.ajax.prototype.beforeSend.apply(this, arguments);
},
success: function (response, status) {
console.log('after send');
Drupal.ajax.prototype.success.apply(this, arguments);
},
});
Или можно с помощью jQuery в обход друпала.
Написанное актуально для
Drupal 7
Комментарии
Почему то в первом случае срабатывает, а при обращении к конкретной форме ну никак не могу прицепиться.
https://sksinmar.ru/uslugi/stroitelstvo
В консоли видна ошибка и откуда вызов идет.
Пишу:
Может где-то неправильно пишу?
Добавить комментарий