Javascript XPages:获取-this.\u partialRefresh AJAX调用的内容?

Javascript XPages:获取-this.\u partialRefresh AJAX调用的内容?,javascript,xpages,lotus-domino,Javascript,Xpages,Lotus Domino,我正在对XPage(Domino8.5.1)进行部分刷新,但需要获取响应的内容 原因是IE8似乎(有时)存在部分刷新HTML不显示的问题。我可以看到响应是正确的,但是DOM没有更新 有一个简单的解决方法: div.innerHTML = div.innerHTML 但对于我来说,要应用它,我需要内容,这样我就可以首先插入它 那么,是否可以从partialRefresh获取返回的HTML?或者有其他解决方法吗?您可以将部分刷新作为客户端事件触发: XSP.partialRefreshGet("#

我正在对XPage(Domino8.5.1)进行部分刷新,但需要获取响应的内容

原因是IE8似乎(有时)存在部分刷新HTML不显示的问题。我可以看到响应是正确的,但是DOM没有更新

有一个简单的解决方法:

div.innerHTML = div.innerHTML
但对于我来说,要应用它,我需要内容,这样我就可以首先插入它


那么,是否可以从partialRefresh获取返回的HTML?或者有其他解决方法吗?

您可以将部分刷新作为客户端事件触发:

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

onComplete函数将从服务器传递响应,您可以解析或以其他方式响应该函数中的数据。

要劫持部分刷新,您可以添加以下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 );
}
只需更改函数“hijacked”即可满足您的需求

希望这有帮助

斯文

编辑:
方法“hijacked”是在应用对DOM的更改之前执行的(以及在OnComplete事件之前)

是的,我想这就是我一直在寻找的,因为本机函数没有提供任何插入响应的方法。在另一个我希望存储来自特定请求的响应的情况下对其进行了测试。但是responseData总是未定义的。有什么想法吗?谢谢/J