我正在使用closePopupBehavior关闭弹出窗口。如何在调用弹出窗口后5秒内关闭弹出窗口。
以下是我的amx页面
<amx:view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amx="http://xmlns.oracle.com/adf/mf/amx"
xmlns:dvtm="http://xmlns.oracle.com/adf/mf/amx/dvt">
<amx:panelPage id="pp1">
<amx:facet name="header">
<amx:outputText value="Header" id="ot1"/>
</amx:facet>
<amx:facet name="primary">
<amx:commandButton id="cb1"/>
</amx:facet>
<amx:facet name="secondary">
<amx:commandButton id="cb2"/>
</amx:facet>
<amx:commandButton text="Show popup - using Java" id="cb3" actionListener="#{test.btnClick}">
<amx:showPopupBehavior id="spb1" popupId="p1" align="after" alignId="cb3"/> </amx:commandButton>
</amx:panelPage>
<amx:popup id="p1">
<amx:panelGroupLayout id="pgl2" layout="vertical">
<amx:outputText value="I am called from java." id="ot2"/>
</amx:panelGroupLayout>
<amx:commandButton text="Close" id="cb5">
<amx:closePopupBehavior id="cpb1" popupId="p1" type="action"/>
</amx:commandButton>
</amx:popup>
</amx:view>
以下是我的Managed Bean
public class TestBean{
public void btnClick(ActionEvent actionEvent) {
AdfmfContainerUtilities.invokeContainerJavaScriptFunction("feature1",
"showPopup",
new Object[] {} );
}
}
如果可以通过使用javascript关闭也发布你的答案。非常感谢你
答案 0 :(得分:0)
我看到你正在使用Jobinesh http://www.jobinesh.com/2013/12/adfmobile-programatically-invoking.html中提到的例子。
为了在让我们说5秒之后关闭弹出窗口,您需要在JS文件中添加以下功能
(function () {
hidePopup = function () {
var element = document.getElementById("cb5");
customTriggerEvent(element, "touchstart");
customTriggerEvent(element, "touchend");
}
var customTriggerEvent = function (eventTarget, eventType, triggerExtra) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent(eventType, true, true);
evt.view = window;
evt.altKey = false;
evt.ctrlKey = false;
evt.shiftKey = false;
evt.metaKey = false;
evt.keyCode = 0;
evt.charCode = 'a';
if (triggerExtra != null)
evt.triggerExtra = triggerExtra;
eventTarget.dispatchEvent(evt);
};
})();
其中&#34; cb5&#34;是closePopupBehavior
按钮的id,在showPopup
JS函数的末尾,您需要添加以下行
setTimeout(function(){hidePopup();}, 5000);