將添加到您的徽標,如here。
爲這個類添加一個客戶端側onclick事件,該事件在空面板上執行部分刷新。此面板具有呈現屬性,該屬性始終返回true,但如果部分刷新由客戶端onclick事件執行,則會執行其他代碼。
<xe:applicationLayout
...
<xe:this.configuration>
<xe:oneuiApplication
productLogo="/logo.png"
productLogoClass="applicationLogo">
...
</xe:oneuiApplication>
</xe:this.configuration>
</xe:applicationLayout>
<xp:eventHandler
event="onClientLoad"
submit="false">
<xp:this.script><![CDATA[var applicationLogo = dojo.query('.applicationLogo')[0];
applicationLogo.onclick = function() {
XSP.partialRefreshGet("#{id:onClickApplicationLogo}",
{params: {'onClickApplicationLogo': true}})
}
]]></xp:this.script>
</xp:eventHandler>
<xp:panel id="onClickApplicationLogo">
<xp:this.rendered><![CDATA[#{javascript:
if (param.onClickApplicationLogo) {
print("onClick application icon");
context.redirectToPage("Home.xsp");
}
return true;}]]>
</xp:this.rendered>
</xp:panel>
在本例中,它將「onClick應用程序圖標」寫入服務器控制檯並重定向到「Home.xsp」。
克努特,很好用的道場!問題 - 你能不能把它全部保存在客戶端腳本中,只需使用window.location.href移動到主頁? – Howard 2015-02-23 22:42:09
當然可以,但是Ben明確要求執行服務器端代碼,所以我認爲它也可以用於其他方面。 – 2015-02-23 23:00:13
事實上,我想知道這是否可行,因爲我可能需要跟蹤很多統計數據來分析人們在應用程序中的工作方式。客戶端是reat,因爲它避免了到服務器的旅程,但是如果我需要在用戶點擊徽標時創建某種統計文檔,我需要服務器端代碼來生成統計文檔。 一旦不需要統計信息,肯定會成爲客戶端代碼。 – 2015-02-24 13:31:49