gpt4 book ai didi

javascript - 使用Javascript CSJS代码和AJAX更新页面问题

转载 作者:行者123 更新时间:2023-12-02 23:15:26 25 4
gpt4 key购买 nike

我有一个带有按钮的 XPage。与按钮关联的代码是 CSJS,首先它必须将 innerHTML 更新为 DIV,然后调用返回结果的 XAgent。

它无法正常工作,因为innerHTML仅在XAgent执行后更新,而我需要它尽快更新。

我复制下面的CSJS代码:

var x = document.getElementById('#{javascript:getClientId("divMsgApplicazione")}');
if(x!=null) x.innerHTML = "Ricerca in corso...";

var risultato;
var xhrArgs = {
url: urlAgent,
handleAs: "text",
preventCache: true,
sync: true,
load: function(data) {
risultato = data;
},

error: function(error) {
alert("An unexpected error occurred: " + error);
return null;
}
}

//Call the asynchronous xhrGet
var deferred = dojo.xhrGet(xhrArgs);
return risultato

同步参数不能为 false。

可能的原因是什么?

最佳答案

您在按钮的 onclick 事件中执行的 SSJS 代码将在刷新 XPage 之前执行,这意味着 div 将在完全执行代码(包括 XAgent)后刷新。您可以使用按钮的 eventHandler 中的“onComplete”属性来调用 XAgent。这是刷新后执行的纯 JavaScript 事件(客户端)。

要访问事件处理程序(而不是按钮)的属性,您可以在 XML 中定位事件处理程序,或者在大纲面板中选择事件。

Eventhandler in the outline

Properties of the eventhandler

提示:按钮事件处理程序中还有其他客户端事件。以下是一个小概述:

<xp:button value="Test button" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="refresher">
<xp:this.onStart><![CDATA[alert("onstart")]]></xp:this.onStart>
<xp:this.onComplete><![CDATA[alert("oncomplete")]]></xp:this.onComplete>
<xp:this.onError><![CDATA[alert("onerror")]]></xp:this.onError>
<xp:this.action><![CDATA[#{javascript://CSJS executed in backend before refresh}]]></xp:this.action>
</xp:eventHandler>
</xp:button>

关于javascript - 使用Javascript CSJS代码和AJAX更新页面问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57184381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com