Avatar billede molehonter Mester
11. september 2013 - 10:19 Der er 10 kommentarer og
1 løsning

Kode driller

jeg får denne fejl. kan ikke få variablen catWord til at virke.
Hvad er der galt, har prøvet mange ting.

fejl fra JavaScript Debugger
*******************************
Acrobat EScript Built-in Functions Version 10.0
Acrobat SOAP 10.0

catWord is not defined
10:Batch:Exec
ReferenceError: catWord is not defined
10:Batch:Exec
********************************
Her er koden.

  for (var p = 0; p < this.numPages; p++)
    {
        var numWords = this.getPageNumWords(p);
        for (var i=0; i<numWords; i++)
        {
            var ckWord = this.getPageNthWord(p, i, true);
            if (ckWord == catWord) <======== Se her.
            {
                var q = this.getPageNthWordQuads(p, i);
                // Convert quads in default user space to rotated
                // User space used by Links.
                m = (new Matrix2D).fromRotated(this,p);
                mInv = m.invert()
                r = mInv.transform(q)
                r = r.toString()
                r = r.split(",");
                l = addLink(p, [r[4], r[5], r[2], r[3]]);
                l.borderColor = color.red;
                l.borderWidth = 1;
                l.setAction("this.getURL('http://www.molehunter.com/')");
            }
        }
      }

this.pageNum = 0;
       
       
function GreateLink()
{
  {
  var catWord = "Electricity";
  p
  }   
}
Avatar billede anri Novice
11. september 2013 - 10:25 #1
Er catWork ikke en lokal variabel inde i funktionen GreateLink?
Så kan du ikke nå den udenfor den funktion.
Avatar billede molehonter Mester
11. september 2013 - 10:41 #2
Har du en eksempel på hvordan den kunne se ud.
Avatar billede anri Novice
11. september 2013 - 10:51 #3
Du kunne lægge catword som en global variabel, så den kan nåes fra resten af koden:

var catWord = null;
function GreateLink()
{
  {
    catWord = "Electricity";
  }   
}

eller returnere værdien og bruge den i koden

function GreateLink()
{
  {
    return "Electricity";
  }   
}

var catWord = GreateLink();
  for (var p = 0; p < this.numPages; p++)
    {
        var numWords = this.getPageNumWords(p);
        for (var i=0; i<numWords; i++)
        {
            var ckWord = this.getPageNthWord(p, i, true);
            if (ckWord == catWord) <======== Se her.
            {
                var q = this.getPageNthWordQuads(p, i);
                // Convert quads in default user space to rotated
                // User space used by Links.
                m = (new Matrix2D).fromRotated(this,p);
                mInv = m.invert()
                r = mInv.transform(q)
                r = r.toString()
                r = r.split(",");
                l = addLink(p, [r[4], r[5], r[2], r[3]]);
                l.borderColor = color.red;
                l.borderWidth = 1;
                l.setAction("this.getURL('http://www.molehunter.com/ (...))");
            }
        }
      }

this.pageNum = 0;
Avatar billede molehonter Mester
11. september 2013 - 11:20 #4
Jeg prøver den lige af
Avatar billede molehonter Mester
13. september 2013 - 07:49 #5
Jeg får denne meldning, når jeg kører koden.
Acrobat JavaScript Debugger Functions Version 10.0
Acrobat EScript Built-in Functions Version 10.0
Acrobat SOAP 10.0

SyntaxError: missing ; before statement
3:Batch:Exec

Når jeg lukker editoren kommer adobe acrobat denne meldning.
JavaScript error at line 4: SyntaxError: missing; before statement 3:. Fix it?

her kommer koden.:
/* Put script title here */
 
Var catWord = GreateLink();
  for (var p = 0; p < this.numPages; p++)
    {
        var numWords = this.getPageNumWords(p);
        for (var i=0; i<numWords; i++)
        {
            var ckWord = this.getPageNthWord(p, i, true);
            if (ckWord == catWord)
            {
                var q = this.getPageNthWordQuads(p, i);
                // Convert quads in default user space to rotated
                // User space used by Links.
                m = (new Matrix2D).fromRotated(this,p);
                mInv = m.invert()
                r = mInv.transform(q)
                r = r.toString()
                r = r.split(",");
                l = addLink(p, [r[4], r[5], r[2], r[3]]);
                l.borderColor = color.red;
                l.borderWidth = 1;
                l.setAction("this.getURL('http://www.molehunter.com/')");
            }
        }
      }
   


       
function GreateLink()
  {
  return "Electricity";
  }   

this.pageNum = 0;
Avatar billede molehonter Mester
13. september 2013 - 08:27 #6
jeg har kigget lidt næremere på koden i editoren, som også viser de forskelige bloke indkaspling, der virker det som om at der mangler en blok der skal indkapsle hele blokken

for (var p = 0; p < this.numPages; p++)

ikke er ordentlig afsluttet.
Avatar billede anri Novice
13. september 2013 - 08:30 #7
Javascript er case sensitiv..
"Var" i Var catWord = GreateLink();
skal stå med småt;


var catWord = GreateLink();
Avatar billede anri Novice
13. september 2013 - 08:47 #8
Hvilket program laver du det i?
Avatar billede molehonter Mester
13. september 2013 - 09:01 #9
Nu får jeg ingen fejlmeddelelser i JavaScript Debugger, og jeg lærte noget nyt,

Nu opstår næste lille problem. Scriptet skal koble et link på et nøgleord i en pdf dokument. Hvor værdien fra catWord
skal ligges ind her.

    var ckWord = this.getPageNthWord(p, i, true);
    if (ckWord == catWord)

der kommer ingen link.

Hvis koden ser sådan ud kommer der en link hvergang den møder: Electricity
    var ckWord = this.getPageNthWord(p, i, true);
    if (ckWord == "Electricity")

Skriv lige et svar så du kan få dine point
Avatar billede molehonter Mester
13. september 2013 - 09:07 #10
Jeg bruger faktisk notepad som editor til Adobe Acrobat Pro.
Avatar billede anri Novice
13. september 2013 - 10:23 #11
Hvis det er noget du skal arbejde en del på, så brug lige 10 minutter på at finde en god JavaScript editor med syntax highlighting og måske fejl-check.

Den tid er godt givet ud..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester