簡體   English   中英

從JSF托管Bean執行的JavaScript代碼不起作用

[英]JavaScript code executed from a JSF Managed Bean not working

盡管Java代碼實際上可以,但是在此JSF Managed Bean的logout方法中執行的以下JavaScript代碼不起作用。 因此,盡管實際上發生了注銷,但是未執行JavaScript代碼(基本上單擊了按鈕)。 有什么想法可能發生嗎? 謝謝是前進!

@SessionScoped
@ManagedBean(name = "LoginController")
public class LoginController implements Serializable {
...
public void logout() {
        try {

            RequestContext rc = RequestContext.getCurrentInstance();

            script = "$('#btnLogOut').prop('disabled', false); window.location.reload(true); $('#btnLogOut').click(); $('#btnLogOut').prop('disabled', true);";
            rc.execute(script);

            ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
            ec.invalidateSession();

        } catch (Exception e) {
            log.error("error", e);
        }

    }

您使用window.location.reload(true);重新加載頁面window.location.reload(true); 在腳本的開頭,因此瀏覽器可能沒有時間執行緊隨其后的部分,即單擊注銷按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM