XPages: получить содержимое вызова AJAX this._partialRefresh? - PullRequest
0 голосов
/ 19 марта 2012

Я делаю частичное обновление XPage (Domino 8.5.1), но мне нужно получить содержимое ответа.

Причина в том, что IE8 (иногда) имеет проблему с частичным обновлением HTML, который не отображается. Я вижу, что ответ правильный, но DOM не обновляется.

Это легко исправить:

div.innerHTML = div.innerHTML

Но для того, чтобы применить это, мне нужен контент, чтобы я мог вставить его в первую очередь.

Итак, возможно ли получить возвращенный HTML из частичного восстановления? Или есть другой способ решить эту проблему?

Ответы [ 2 ]

8 голосов
/ 20 марта 2012

Вы можете запустить частичное обновление как событие на стороне клиента:

XSP.partialRefreshGet("#{id:targetId}", {
    onComplete: function(responseData) {
        // examine the response content
    }
});

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

2 голосов
/ 20 марта 2012

Чтобы перехватить частичное обновление, вы можете добавить этот код CSJS:

// --- hijack dojo XHR calls
dojo._xhr = dojo.xhr; 
var loadOld;

function hijacked( response, ioArgs ){
   alert( response ); // change code here to do whatever you want. // 
   loadOld( response, ioArgs ); // call the original function 
}

dojo.xhr = function( mode, args, bool ){
    loadOld = args["load"];
    args["load"] = hijacked;
    dojo._xhr( mode, args, bool );
}

Просто измените функцию «угнали», чтобы удовлетворить ваши требования.

Надеюсь, это поможет

Sven

Редактировать: Метод "угнан" выполняется ДО того, как будут применены изменения в DOM (и до события OnComplete)

...