1 Reply Latest reply on Feb 18, 2015 4:57 AM by Jump_Over

    Script UI 89858 error

    Johnwhite Level 1

      Hi everyone

       

      I change the script into this

      but cause 89858 error

      so can some fix this error?

       

      Regard

      John

       

      //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++

       

                  function doSomething(myEvent1){

                     var cSelected = ddown.selection.index;

                     if (myEvent1.keyName === "Up") {

                          if (cSelected == ddown.items.length - 1) {

                              ddown.selection = ddown.items[0]; return;

                              }

                           if (ddown.items[cSelected + 1].type == "item") {

                              ddown.selection = ddown.items[cSelected + 1]; return;

                              }

                          else ddown.selection = ddown.items[cSelected + 2];

                          return;

                          }

                       if (myEvent1.keyName === "Down") {

                          if (cSelected == 0) {

                              ddown.selection = ddown.items.length - 1; return;

                              }

                           if (ddown.items[cSelected - 1].type == "item") {

                              ddown.selection = ddown.items[cSelected - 1]; return;

                              }

                          else ddown.selection = ddown.items[cSelected - 2];

                          return;

                          }

                  for(var n=0;n<myStringList.length;n++){

                      if(myEvent1.keyName === String(Number(myStringList[n].replace(/^0+/,"")))){

                          ddown.selection = n;

                          break;

                              }

                          };

                      };  

       

                  //Array of strings:

                  var myStringList =

                      [

                          "1 General",

                          "2 Special",

                          "3 Others"

                      ];

                 

                  var w = new Window ("dialog", "Change by list");

                  var ddown = w.add ("dropdownlist", undefined, myStringList);

                  ddown.minimumSize.width = 200;

                  ddown.selection = 0;

                  ddown.active = true;

                  w.addEventListener ("keydown", doSomething);

       

       

                      b = w.add("group");

                      b.add ('button', undefined, "OK", {name: "OK"});

                      b.add ('button', undefined, "取り消す", {name: "Cancel"});

       

       

      //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

       

       

      if (w.show() == 1){

        app.selection[0].tables.everyItem().convertToText("\t", "\r");

        main();

       

      // dropdown list assigned and return to nothing so cause 89858 error

        }

      function main(){

        var myObject;

        var myCheckSelection = false;

        if(app.documents.length > 0){

        if(app.selection.length > 0){

        switch(app.selection[0].constructor.name){

        case "InsertionPoint":

        case "Character":

        case "Word":

        case "TextStyleRange":

        case "Line":

        case "Paragraph":

        case "TextColumn":

        case "Text":

        myObject = app.selection[0];

        if(myObject != "None"){

        myFindChangeByList(myObject, true);

       

       

                                  app.findTextPreferences = NothingEnum.nothing;

                                  app.findTextPreferences.capitalization = Capitalization.ALL_CAPS;

                                  app.findChangeTextOptions.wholeWord = false;

       

       

                                  var myFoundItem = app.activeDocument.findText()

       

       

                                  for ( i = myFoundItem.length-1; i >= 0 ; i-- )

                                  changeUpperCase( myFoundItem[i] );

                                  app.findTextPreferences = NothingEnum.nothing;

       

       

                                  function changeUpperCase ( myFound )

                                  {

        myFound.capitalization = Capitalization.normal;

        myFound.changecase( ChangecaseMode.uppercase );

        }

       

       

        } // if

        } // switch

        } // if

        } // if

        else alert("No documents are open. Please open a document and try again.");

      }

      function myFindChangeByList(myObject, myCheckSelection){

        var myScriptFileName, myFindChangeFile, myFindChangeFileName, myScriptFile, myResult;

        var myFindChangeArray, myFindPreferences, myChangePreferences, myFindLimit;

        var myStartCharacter, myEndCharacter;

          if (myStringList == 0){

              var myFindChangeFile = myFindFile("/ClearRubbishSupport/FindChangeList[1tab]-E.txt");

          }

          else if (myStringList == 1){

              var myFindChangeFile = myFindFile("/ClearRubbishSupport/ClearRubbish[enrule]_E.txt");

          }

        else if (myStringList == 2){

              var myFindChangeFile = myFindFile("/ClearRubbishSupport/midas&chuangs_E.txt");

          }

        if(myFindChangeFile != null){

              // Because the selection will change as we add/remove characters,

              // we'll need to reset the selection after each pass if we are

              // checking the selection. We'll get the index of the first character

              // in the selection (relative to the start of its parent story) and

              // the index of the last character in the selection (relative to the

              // *end* of the story, and we'll use them later in the script to

              // keep the ends of the selection in place.

        if(myCheckSelection == true){

        var myStart = myObject.characters.item(0).index;

        var myEnd = myObject.characters.item(-1).index;

        var myStory = myObject.parentStory;

        var myStoryEnd = myStory.characters.item(-1).index;

        myEnd = (myStoryEnd - myEnd)+1;

        }

        myFindChangeFile = File(myFindChangeFile);

        var myResult = myFindChangeFile.open("r", undefined, undefined);

        if(myResult == true){

        //Loop through the find/change operations.

        do{

        myLine = myFindChangeFile.readln();

        //Ignore comment lines and blank lines.

        if((myLine.substring(0,4)!="text")||(myLine.substring(0,4)!="grep")||(myLine.substring(0, 5)!="glyph")){

        myFindChangeArray = myLine.split("\t");

        //The first field in the line is the findType string.

        myFindType = myFindChangeArray[0];

        //The second field in the line is the FindPreferences string.

        myFindPreferences = myFindChangeArray[1];

        //The second field in the line is the ChangePreferences string.

        myChangePreferences = myFindChangeArray[2];

        //The fourth field is the range--used only by text find/change.

        myFindChangeOptions = "{includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}";

        switch(myFindType){

        case "text":

        myFindText(myObject, myFindPreferences, myChangePreferences, myFindChangeOptions);

        break;

        case "grep":

        myFindGrep(myObject, myFindPreferences, myChangePreferences, myFindChangeOptions);

        break;

        case "glyph":

        myFindGlyph(myObject, myFindPreferences, myChangePreferences, myFindChangeOptions);

        break;

        }

        if(myCheckSelection == true){

        myStartCharacter = myStory.characters.item(myStart);

        myEndCharacter = myStory.characters.item(-myEnd);

        myObject = myStory.texts.itemByRange(myStartCharacter, myEndCharacter);

        app.select (myObject);

        }

        }

        } while(myFindChangeFile.eof == false);

        myFindChangeFile.close();

        }

        }

      }

      function myFindText(myObject, myFindPreferences, myChangePreferences, myFindChangeOptions){

        //Reset the find/change preferences before each search.

        app.changeTextPreferences = NothingEnum.nothing;

        app.findTextPreferences = NothingEnum.nothing;

        app.findChangeTextOptions = NothingEnum.nothing;

        var myString = "app.findTextPreferences.properties = "+ myFindPreferences + ";";

        myString += "app.changeTextPreferences.properties = " + myChangePreferences + ";";

        myString += "app.findChangeTextOptions.properties = " + myFindChangeOptions + ";";

        app.doScript(myString, ScriptLanguage.javascript);

        myFoundItems = myObject.changeText();

        //Reset the find/change preferences after each search.

        app.changeTextPreferences = NothingEnum.nothing;

        app.findTextPreferences = NothingEnum.nothing;

        app.findChangeTextOptions = NothingEnum.nothing;

      }

      function myFindGrep(myObject, myFindPreferences, myChangePreferences, myFindChangeOptions){

        //Reset the find/change grep preferences before each search.

        app.changeGrepPreferences = NothingEnum.nothing;

        app.findGrepPreferences = NothingEnum.nothing;

        app.findChangeGrepOptions = NothingEnum.nothing;

        var myString = "app.findGrepPreferences.properties = "+ myFindPreferences + ";";

        myString += "app.changeGrepPreferences.properties = " + myChangePreferences + ";";

        myString += "app.findChangeGrepOptions.properties = " + myFindChangeOptions + ";";

        app.doScript(myString, ScriptLanguage.javascript);

        var myFoundItems = myObject.changeGrep();

        //Reset the find/change grep preferences after each search.

        app.changeGrepPreferences = NothingEnum.nothing;

        app.findGrepPreferences = NothingEnum.nothing;

        app.findChangeGrepOptions = NothingEnum.nothing;

      }

      function myFindGlyph(myObject, myFindPreferences, myChangePreferences, myFindChangeOptions){

        //Reset the find/change glyph preferences before each search.

        app.changeGlyphPreferences = NothingEnum.nothing;

        app.findGlyphPreferences = NothingEnum.nothing;

        app.findChangeGlyphOptions = NothingEnum.nothing;

        var myString = "app.findGlyphPreferences.properties = "+ myFindPreferences + ";";

        myString += "app.changeGlyphPreferences.properties = " + myChangePreferences + ";";

        myString += "app.findChangeGlyphOptions.properties = " + myFindChangeOptions + ";";

        app.doScript(myString, ScriptLanguage.javascript);

        var myFoundItems = myObject.changeGlyph();

        //Reset the find/change glyph preferences after each search.

        app.changeGlyphPreferences = NothingEnum.nothing;

        app.findGlyphPreferences = NothingEnum.nothing;

        app.findChangeGlyphOptions = NothingEnum.nothing;

      }

      function myFindFile(myFilePath){

        var myScriptFile = myGetScriptPath();

        var myScriptFile = File(myScriptFile);

        var myScriptFolder = myScriptFile.path;

        myFilePath = myScriptFolder + myFilePath;

        if(File(myFilePath).exists == false){

        //Display a dialog.

        myFilePath = File.openDialog("Choose the file containing your find/change list");

        }

        return myFilePath;

      }

      function myGetScriptPath(){

        try{

        myFile = app.activeScript;

        }

        catch(myError){

        myFile = myError.fileName;

        }

        return myFile;

      }

        • 1. Re: Script UI 89858 error
          Jump_Over Level 5

          Hi,

           

          Suggest two modifications:

           

          1. move marked line from this a part:

          //...

          if (w.show() == 1){

            app.selection[0].tables.everyItem().convertToText("\t", "\r");

            main();

            }

          //...

           

          here:

          //...

          app.selection[0].tables.everyItem().convertToText("\t", "\r");

          myObject = app.selection[0];

          if(myObject != "None"){

          //...

             

          2. Modify this line:

               //...

              if(myObject != "None") {

               //...

           

               like:

                //...

               if(myObject){

               //...

               or just remove this line (remember  closing "}" bracket)

           

          Jarek