0

我正在使用 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>

下面是我的托管豆

public class TestBean{
    public void btnClick(ActionEvent actionEvent) {

    AdfmfContainerUtilities.invokeContainerJavaScriptFunction("feature1",
                                                                     "showPopup",
                                                                      new Object[] {} );
}
}

如果可以使用javascript关闭也可以发布您的答案。非常感谢

4

1 回答 1

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);
    };

})();

其中“cb5”是一个按钮的 id,closePopupBehavior 在你的 JS 函数的末尾showPopup你需要添加下面的行

setTimeout(function(){hidePopup();}, 5000);
于 2014-06-19T19:06:28.137 回答