2016-11-10 2 views
0

KOMMENTAR an der Unterseite der POST SEE - ich habe mit einer Teillösung kommeJS - ‚vor‘ Ereignis-Listenern werden nach der Veranstaltung Brennen

Ich versuche, einen einfachen JS-Skript zu schreiben Benutzer zu zwingen, Rechtschreibprüfung ihre InDesign-Dokumente vor bestimmten Aktionen (speziell speichern, speichern und exportieren).

Bitte bare mit mir, da ich gerade JS lerne, also bin ich sicher, dass es etwas Leichtes gibt, dass ich vermisse.

Im Wesentlichen ist mein Problem, dass das Skript funktioniert, aber es läuft nach dem Ereignis. Beispielsweise wird unter SaveAs das Ereignis ausgeführt, das Dokument gespeichert und anschließend die Funktion ausgelöst.

Ich denke, ich brauche eine Art von vorher. Invoke, aber ich kann es nicht herausfinden.

Hier ist mein Code so weit:

#target indesign 

#targetengine "session" 

main(); 
function main(){ 
    alert('Hello 8'); 

    var myBeforeSaveEvList = app.addEventListener("beforeSave", checkSpelling, false); 

    var myBeforeSaveAsEvList = app.addEventListener("beforeSaveAs", checkSpelling, false); 

    var myBeforeExportEvList = app.addEventListener("beforeExport", checkSpelling, false); 

    //var myAfterSaveEvList = app.addEventListener("afterSave", myAfterSaveHandler, false); 

    function checkSpelling(myEvent){ 
     alert('Before Save...'); 
     app.menuActions.item("Check Spelling...").invoke(); 
    } 

} 
+0

Haben Sie versucht Adobe Support kontaktieren? – evolutionxbox

+0

Ich hatte kein Glück mit Adobe-Unterstützung, aber ich habe die gleiche Frage in den Foren eingereicht. – blancast

Antwort

0

ich es geschafft, mit einer Teillösung zu kommen, aber jetzt in ein anderes Problem, das ich renne.

Ich rief die Aktionen nach Namen und fügte einen 'beforeInvoke' Event Listener hinzu. Dadurch kann die CheckSpelling-Funktion vor dem Ausführen des Ereignisses ausgeführt werden.

Das Problem besteht darin, dass das Speichern/Exportieren-Dialogfeld unmittelbar nach dem Rechtschreibprüfungs-Popup auftaucht und es dem Benutzer nie erlaubt, die Rechtschreibung vor dem Speichern/Exportieren zu überprüfen.

Ich kann mir vorstellen, dass ich Code schreiben muss, um zu verhindern, dass das Dialogfeld platzt, bis die Rechtschreibprüfung abgeschlossen ist, aber ich bin nicht sicher, wo ich anfangen soll.

Neuer Code:

main(); 
 
     
 
    function main(){ 
 
     
 
     alert('Hello 12'); 
 
     
 
    //app.addEventListener("beforeExport", chSpelling); 
 
    //app.addEventListener("beforeSave", chSpelling); 
 
    //app.addEventListener("beforeSaveAs", chSpelling); 
 
     
 
     var 
 
    \t //beforeSave = app.menuActions.itemByID (260).addEventListener ("beforeInvoke", checkSpelling); 
 
    \t //beforeSaveAs = app.menuActions.itemByID (261).addEventListener ("beforeInvoke", checkSpelling); 
 
    \t //beforeSaveAsCopy = app.menuActions.itemByID (262).addEventListener ("beforeInvoke", checkSpelling); 
 
    \t //beforeExport = app.menuActions.itemByID (113411).addEventListener ("beforeInvoke", checkSpelling); 
 
    \t 
 
    \t beforeSave = app.menuActions.itemByName ("$ID/Save").addEventListener ("beforeInvoke", checkSpelling); 
 
    \t beforeSaveAs = app.menuActions.itemByName ("$ID/Save As...").addEventListener ("beforeInvoke", checkSpelling); 
 
    \t beforeSaveACopy = app.menuActions.itemByName ("$ID/Save a Copy...").addEventListener ("beforeInvoke", checkSpelling); 
 
    \t beforeExport = app.menuActions.itemByName ("$ID/Export...").addEventListener ("beforeInvoke", checkSpelling); 
 
     
 
     function checkSpelling(myEvent){ 
 
    \t \t alert('Check Spelling...'); 
 
    \t \t app.menuActions.item("Check Spelling...").invoke(); 
 
    \t } 
 
     
 
     
 

 
    }

Verwandte Themen