2017-01-18 14 views
0

フロントエンドの画像エディタダイアログが表示された後、javascriptコードを実行したいと思います。どうやってやるの?それは今まで私が持っているものです:ポップアップダイアログが表示された後にJSを実行する

function ${namespace}editWithImageEditor(
    editItemURL, uploadItemURL, fileEntryFilename, fileEntrySrc) { 

    Liferay.Util.editEntity(
     { 
      dialog: { 
       destroyOnHide: true, 
       zIndex: 100000 
      }, 
      id: 'dlImageEditor', 
      stack: false, 
      title: '${editLanguageKey} ' + fileEntryFilename, 
      uri: editItemURL, 
      urlParams: { 
       entityURL: fileEntrySrc, 
       saveParamName: 'imageEditorFileName', 
       saveURL: uploadItemURL 
      }, 
      dialogIframe: { 
       after: { 
        load: function(event) {} 
       } 
      } 
     }, 
     AUI().bind('${namespace}_onSaveEditSuccess', this) 
    ); 
} 

これは動作しますが、すべてのダイアログコンテンツがロードされる前に実行されています。ダイアログが完全に読み込まれた後にスクリプトを実行するには?ありがとう!

+0

ここでイベントを試してみましたかhttps://yuilibrary.com/yui/docs/event/domready.html – Lifehack

答えて

-1

だけ実行したいJavaScriptを遅らせるために遅延/タイムアウトを追加し、私はここ遅延1秒作りましたが、あなたは、あなたがしたいと思う限り、それはのように短いまたは作ることができ

function ${namespace}editWithImageEditor(
editItemURL, uploadItemURL, fileEntryFilename, fileEntrySrc) { 

Liferay.Util.editEntity(
    { 
     dialog: { 
      destroyOnHide: true, 
      zIndex: 100000 
     }, 
     id: 'dlImageEditor', 
     stack: false, 
     title: '${editLanguageKey} ' + fileEntryFilename, 
     uri: editItemURL, 
     urlParams: { 
      entityURL: fileEntrySrc, 
      saveParamName: 'imageEditorFileName', 
      saveURL: uploadItemURL 
     }, 
     dialogIframe: { 
      after: { 
       load: window.setTimeout(function(event) { 
          //code here 
         }, 1000) 
       } 
      } 
     } 
    }, 
    AUI().bind('${namespace}_onSaveEditSuccess', this) 
); 

}

+0

うーん、それは理想的な答えではないかもしれませんが、役立ちます! – bartex9

+0

確かに、私はそれが本当に最善のことではないと認めますが、最も簡単です。 (3) – Grey

+1

これがうまくいくという保証はありません。あなたが設定した時間は任意で、ダイアログコンテンツが読み込まれる前または後にコードが実行されることがあります。あなたとOPの両方は、それが良い解決策ではないことを認めています-1。 – stiemannkj1

関連する問題