Sabine: Variablenübergabe

Hallo,

die folgende Java-Script Funktion habe ich in einer *.js-Datei gefunden, die neben dieser noch weitere Java-Script Funktionen enthält. Beim Aufruf der Funktion "xrxTemplatePutTemplate" werden fünf Parameter übergeben. Nun ist es so, dass die Parameter sampleTemplateContent, finishPutTemplate und callback_failure nirgendwo definiert worden sind. Nun zu meinen Fragen:

1.)
Ist es richtig, dass für die Parameter sampleTemplateContent, finishPutTemplate und callback_failure einfach leere Strings übergeben werden?

2.)
Welchen Sinn könnte es machen leere Strings an eine Funktion zu übergeben?

/* startScan : puts sample template onto the device by calling the
 * STM web service library, then calls scan web service libabry to
 * initiate scanning
 */
function startScan( templateName, isRemote )
{
    try
    {
        document.getElementById('xrxSR3Text').innerHTML =
            "Scanning will begin. Please wait.";

xrxTemplatePutTemplate( "https://127.0.0.1",
                                templateName,
                                sampleTemplateContent,
                                finishPutTemplate,
                                callback_failure
                              );
    }
    catch(e)
    {
        alert(e);
    }
}

  1. Hi,

    die folgende Java-Script Funktion habe ich in einer *.js-Datei gefunden, die neben dieser noch weitere Java-Script Funktionen enthält. Beim Aufruf der Funktion "xrxTemplatePutTemplate" werden fünf Parameter übergeben. Nun ist es so, dass die Parameter sampleTemplateContent, finishPutTemplate und callback_failure nirgendwo definiert worden sind.

    Und das hast du wie *ueberprueft*?

    (Eine Kontrollausgabe per alert direkt vor der Aufrufstelle waere wohl das Mindeste; typeof koennte auch noch interessant sein.)

    Ist es richtig, dass für die Parameter sampleTemplateContent, finishPutTemplate und callback_failure einfach leere Strings übergeben werden?

    Noe, wenn's sie gar nicht gibt, dann wuerde wohl undefined uebergeben.

    Welchen Sinn könnte es machen leere Strings an eine Funktion zu übergeben?

    Da ich die Funktion nicht kenne, kann ich nur raten: Vermutlich sorgt es letztendlich fuer Weltfrieden. Also besser, du rufst sie bald mal auf.

    MfG ChrisB

    1. Ich poste einfach mal die ganze Datei. Vielleicht könnt ihr mir dann mehr sagen:

      /*
       * ScanApp.js
       * Copyright (C) Xerox Corporation, 2007.  All rights reserved.
       *
       * This file contains functions to start a scan job and to handle the response
       * using the Scan Web Service Library
       */

      /* startScan : puts sample template onto the device by calling the STM web service library, then calls
       * scan web service libabry to initiate scanning
       */
      function startScan( templateName, isRemote )
      {
          try{
              document.getElementById('xrxSR3Text').innerHTML = "Scanning will begin. Please wait.";
              // Load the sample template onto the device for the sample scan job
              xrxTemplatePutTemplate("https://127.0.0.1", templateName, sampleTemplateContent, finishPutTemplate, callback_failure );
          }
          catch ( e ){    // for debug
              alert(e);
          }
      }

      /* finishScan */
      function finishScan(callid, response){
          // retrieve and display the job id by using the parsing function in the Scan web service library
          jobID = xrxScanParseInitiateScan(response);
          document.getElementById('contentarea').innerHTML = "Job successfully scanned. The local Job ID is" + jobID;
          // delete the sample template from the device
          deleteSampleTemplate();
      }

      /* call_failure */
      function callback_failure(){
          document.getElementById('xrxSR3Text').innerHTML = "WEB SERVICE CALL FAILED!";
      }

      /* putTemplate */
      function putTemplate(){
          document.getElementById('xrxSR3Text').innerHTML = "Loading Sample Template onto device.";
          // call to web service library
          xrxTemplatePutTemplate("https://127.0.0.1", "sampleTemplate.xst", sampleTemplateContent, finishPutTemplate, callback_failure );
      }

      /* finishPutTemplate : Handles the response from the web service request, and stores returned checksum */
      function finishPutTemplate(callid, response)
      {
          // convert response to dom using web service library
          var xmlDoc = xrxStringToDom(response);
          // store checksum for deleting of template
          tchecksum = xrxGetElementValue(xmlDoc, 'TemplateChecksum');
          // call to web service library to initaite the scan job
       xrxScanInitiateScan( "https://127.0.0.1", "sampleTemplate.xst", false, finishScan, callback_failure );
      }

      /*  deleteSampleTemplate
       *  NOTE: The corresponding checksum must be provided to delete a teamplet off the device.
       *  For this sample the checksum was stored from the response for the PutTemplateRequest
       */
      function deleteSampleTemplate()
      {
          // call to Template web service library to delete the sample template
          xrxTemplateDeleteTemplate( "https://127.0.0.1", "sampleTemplate.xst", tchecksum, finishDeleteTemplate, callback_failure )
      }

      /* finishDeleteTemplate : Handles the response from DeleteTemplate web service request */
      function finishDeleteTemplate(){
          // Ready to scan another job
          document.getElementById('xrxSR3Text').innerHTML = "Ready";
      }

      1. Ich poste einfach mal die ganze Datei. Vielleicht könnt ihr mir dann mehr sagen:

        Nein, denn da passiert erstmal nichts. Es muss alsop noch mehr Code geben und was ist jetzt deine Frage?

        Struppi.

      2. Hi,

        Ich poste einfach mal die ganze Datei. Vielleicht könnt ihr mir dann mehr sagen:

        Ja, dann kann ich dir folgendes mehr sagen bzw. dich fragen:

        Warum zum Geier kippst du uns den ganzen Kram vor die Fuesse, anstatt erst mal den ersten Ueberpruefungs-Schritt durchzufuehren, auf den ich dich explizit hinwies?

        Wenn dir explizite Rueckfragen gestellt werden, dann beantworte diese bitte auch.

        MfG ChrisB

  2. 1.)
    Ist es richtig, dass für die Parameter sampleTemplateContent, finishPutTemplate und callback_failure einfach leere Strings übergeben werden?

    Nein, zumindest ist das nicht aus dem Code ersichtlich. Der Code wird eher einen Fehler anzeigen, so etwas wie :
    Fehler: sampleTemplateContent is not defined
    Quelldatei: xxx
    Zeile: xx

    2.)
    Welchen Sinn könnte es machen leere Strings an eine Funktion zu übergeben?

    Den das man leere String übergeben möchte. Wieso sollte es keinen Sinn machen?

    Struppi.