<?xml version="1.0" encoding="UTF-8"?><xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xe:jsonRpcService
id="jsonRpcService1"
serviceName="rpcService">
<xe:this.methods>
<xe:remoteMethod
name="machwas"
script="MyBean.machwas() ;">
</xe:remoteMethod>
</xe:this.methods>
</xe:jsonRpcService>
<xp:scriptBlock id="scriptBlock1">
<xp:this.value><![CDATA[dojo.addOnLoad(function() {
console.log(rpcService) ;}) ;]]></xp:this.value>
</xp:scriptBlock>
<xp:scriptBlock id="scriptBlock2">
<xp:this.value><![CDATA[dojo.addOnLoad(function() {
setTimeout(function(){
console.log(rpcService) ;
}, 1);});]]></xp:this.value>
</xp:scriptBlock>
Dieser Code einen Fehler in scriptBlock1 wirft:
test.xsp:21 Uncaught ReferenceError: rpcService is not defined
at test.xsp:21
at _55c (dojo.js:15)
at $DDUS_ (dojo.js:15)
at $DDUT_ (dojo.js:15)
at $DDUR_ (dojo.js:15)
at HTMLDocument.$DDHs_ (dojo.js:15)
scriptBlock2 arbeitet.
Ich wundere mich darüber, weil ich es wie in scriptBlock1 in anderen, komplexeren xpages verwenden. Aber kann nicht den Grund finden, warum es dort arbeitet und nicht im einfachen Code oben. Irgendwelche Vorschläge?
Versuchen Sie mit XSP.addOnLoad() anstelle von dojo.addOnLoad() –
Kein Unterschied mit XSP.addOnLoad(). –