2015-02-23 44 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