2015-02-23 40 views
2

使用應用程序佈局時,是否可以使徽標可點擊?點擊頂部的徽標時,大多數網站都會回到主頁,我的用戶也在問這個問題。無法弄清楚如何...我非常肯定它與提交的值有關,但是如何爲徽標設置它?或者它可能完全不同,不確定。xpages應用程序佈局:如何使徽標可點擊?

我發現這個:onClick Event Banner in Application Layout但我不確定我想爲所有頁面添加一些客戶端JavaScript。一定會有更好的辦法。

回答

6

將添加到您的徽標,如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」。

+0

克努特,很好用的道場!問題 - 你能不能把它全部保存在客戶端腳本中,只需使用window.location.href移動到主頁? – Howard 2015-02-23 22:42:09

+4

當然可以,但是Ben明確要求執行服務器端代碼,所以我認爲它也可以用於其他方面。 – 2015-02-23 23:00:13

+1

事實上,我想知道這是否可行,因爲我可能需要跟蹤很多統計數據來分析人們在應用程序中的工作方式。客戶端是reat,因爲它避免了到服務器的旅程,但是如果我需要在用戶點擊徽標時創建某種統計文檔,我需要服務器端代碼來生成統計文檔。 一旦不需要統計信息,肯定會成爲客戶端代碼。 – 2015-02-24 13:31:49