gpt4 book ai didi

javascript - 如何使用javascript在adf中保持页面滚动位置?

转载 作者:行者123 更新时间:2023-12-02 09:39:43 25 4
gpt4 key购买 nike

我在 adf (12.2) 中有弹出窗口,用于编辑 af:table 行,当我在 adf 弹出窗口上单击“确定”时,它将页面滚动到顶部这是不受欢迎的行为,我想保持相同的滚动位置我尝试将 af:clientListner 与 javascript 代码一起使用,但它不起作用这是我的代码:

<af:resource type="javascript">
var scrlTop =0;
var scrlLeft=0;
console.log("inside soohoo ");
console
function stopAutoScrollToTop(data)
{
if (data.status=="begin")
{
console.log("soho 1 ")
scrlTop = window.pageYOffset;
scrlLeft = window.pageXOffset;
}
else if (data.status =="success"){
console.log("soho 2 ")
window.scrollTo(scrlLeft,scrlTop);}}
</af:resource>

这是 adf 弹出窗口的代码

  <af:popup childCreation="deferred" autoCancel="disabled" id="popup" 
popupCanceledListener="#{pageFlowScope.bean.cancelpop}"
binding="#{pageFlowScope.bean.add}" contentDelivery="lazyUncached">
<af:dialog id="d2" type="none"
title="#{pageFlowScope.bean.isInsertPopup ? lang.add:lang.edit }" closeIconVisible="false"
modal="false">
<f:facet name="buttonBar">
<af:panelGroupLayout id="pgl2">
<af:button text="#{lang.OK_BUTTON}" id="b35" partialSubmit="true"
actionListener="#{pageFlowScope.bean.save}" styleClass="btn-black">
<af:clientListener type="action" method="stopAutoScrollToTop"/>
</af:button>
<af:button text="#{lang.CANCEL_BTN}" id="b6" immediate="true"
visible="#{pageFlowScope.bean.isInsertPopup}"
action="#{pageFlowScope.bean.CancelOutput}" styleClass="btn-black"/>

</af:panelGroupLayout>
</f:facet>
<af:panelFormLayout id="pfl3" rows="2" maxColumns="2" labelAlignment="top">
<af:inputText value="#{bindings.Name.inputValue}"
label="#{bindings.Name.hints.label}"
required="true"
showRequired="true" columns="#{bindings.Name.hints.displayWidth}"
maximumLength="#{bindings.Name.hints.precision}"
shortDesc="#{bindings.Name.hints.tooltip}" id="it3"
binding="#{pageFlowScope.Bean.Name}">
<f:validator binding="#{bindings.Name.validator}"/>
</af:inputText>

</af:panelFormLayout>
</af:dialog>
</af:popup>

最佳答案

JavaScript 无需指定 ADF 弹出窗口应在 DOM 上的何处打开。

当您需要在元素上方打开弹出窗口而不是滚动到顶部时,请在 af:showPopupBehavior 组件中指定触发弹出窗口的 Align 和 AlignId 属性:

<af:showPopupBehavior popupId="::popup" align="startBefore" alignId="YOUR_COMPONENT_ID_WHERE_THE_POPUP_SHOULD_OPEN"/>

这就是在所有 ADF 版本中执行此操作的方法。

关于javascript - 如何使用javascript在adf中保持页面滚动位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57195501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com