Бих искал да скрия определени контроли, когато xpage е вградена в iframe. Как мога да направя това?
Въз основа на някои препоръки на този сайт опитах:
В JavaScript от страна на клиента имам на разположение:
<xp:eventHandler event="onClientLoad" submit="false">
<xp:this.script><![CDATA[if (window.frameElement) {
//in iframe
var field = document.getElementById("#{id:NavBarOption}");
alert(field.id)
field.value = "hide";
}
else {
//NOT in iframe
var field = document.getElementById("#{id:NavBarOption}");
alert(field.id)
field.value = "";
}]]></xp:this.script>
</xp:eventHandler>
Това трябва да зададе контрола на полето за въвеждане, която има частично опресняване в събитието onchange за:
<xp:inputText id="NavBarOption"
value="${javascript:viewScope.NavBarOption}">
<xp:this.attrs>
<xp:attr name="type" value="hidden"></xp:attr>
</xp:this.attrs>
<xp:eventHandler event="onchange" submit="true"
refreshMode="partial" refreshId="body" immediate="true"
execMode="partial" execId="body">
</xp:eventHandler>
</xp:inputText>
Контролата на полето за въвеждане е обвързана с променлива на обхвата. Този обхват Variabel ще се използва в контроли или персонализиран контрол за изобразеното свойство, напр.:
<xc:ccNavBar id="ccNavBar">
<xc:this.rendered><![CDATA[#{javascript:return true;
var hide = viewScope.showNavBar;
if (hide !=""){
//return false;
}
else{
//return true;
}}]]></xc:this.rendered>
</xc:ccNavBar>
Какво правя неправилно?