2011-03-12 93 views
1

我試圖在頁面加載時使用JavaScript打開primefaces對話框組件,但是我無法打開它。我的「這裏!」當頁面加載時alert會被觸發,但不能使用客戶端的widgetvar屬性找到該組件。任何人都知道在JavaScript中適當的參考?Primefaces使用Javascript打開p:對話框

代碼:

<ui:composition template="#{layoutBean.registeredTemplate}"> 
    <ui:define name="head"> 
     <script type="text/javascript"> 
      jQuery(document).ready(function(){ 
       alert("HERE!"); 
       scrapeImagesDlg.show(); 
      }); 
     </script> 
    </ui:define> 

    <ui:define name="content"> 
     <p:dialog header="#{bundle['bookmarklet.dialog.HEADER']}" 
       widgetVar="scrapeImagesDlg" 
       modal="true" 
       styleClass="dialog dialog2" 
       draggable="false" 
       resizable="false" 
       showEffect="fade" 
       hideEffect="fade" 
       closeListener="#{bookmarklet.close}" 
      onCloseUpdate="imageGrid"> 

     <div class="dialog dialog2"> 
      <div class="dialog-top-reg"></div> 

      <div class="dialog-middle-reg"> 
       <div class="close-button"><h:form> 
        <p:commandButton onclick="scrapeImagesDlg.hide()"/> 
       </h:form></div> 

       <h:form id="scrapeFrm"> 
       <p:commandButton onclick="scapeImages()" value="scrape images"/> 

       <h:inputHidden id="scrapeURL" value="http://www.freefoto.com/preview/04-01-70?ffid=04-01-70"/> 

       <p:remoteCommand name="scapeImages" 
        process="@this,scrapeURL" 
        actionListener="#{bookmarklet.loadImages}" 
        update="imageGrid"/> 

       <p:outputPanel id="imageGrid"> 
        <p:dataGrid var="img" 
         value="#{bookmarkletBean.imageURLs}" 
         rendered="#{bookmarkletBean.shouldRender}" 
         columns="1" 
         rows="1" 
         paginator="true" 
         effect="true" 
         paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} " 
         paginatorPosition="bottom"> 

         <p:column> 
           <h:panelGrid columns="1" style="width:100%"> 
             <p:graphicImage value="#{img}" width="100" height="100"/> 
          </h:panelGrid> 
         </p:column> 
        </p:dataGrid> 
       </p:outputPanel> 
       </h:form> 
      </div> 
      <div class="dialog-bottom-reg"></div> 
     </div> 
     </p:dialog> 
    </ui:define> 
</ui:composition> 

回答

11
<p:dialog visible="true" ...> 

告訴加載頁面時PrimeFaces自動打開對話框。

+1

我主要的問題是腳本塊在頭部而不是在體內,所以腳本在對話框甚至創建之前運行。 – c12 2011-03-16 07:24:06