Gå til innhold

Anbefalte innlegg

Hei!

Jeg åpner en side med URLConnection, men får ikke javascript til å kjøre skikkelig på den siden jeg åpner.

 

utdrag av kode:

 

URL u = new URL(urlstring);

HttpURLConnection con = (HttpURLConnection)u.openConnection();

con.connect();

BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "ISO-8859-1"));

String line;

while ((line = br.readLine()) != null) {

out.println(line);

}

 

Noen som vet hvordan jeg skal klare å få kjørt javascript på denne "undersiden"?

Lenke til kommentar
Videoannonse
Annonse

har en onload="init();" i body-tagen på siden som hentes inn. Denne kjører igjen en del kode, og det er denne koden som ikke ser ut til å kjøre skikkelig. Siden (med javascript-kode) kjører som den skal når jeg åpner siden for seg selv, men ikke når jeg henter den inn med java-koden under.

 

Kan dette skyldes måten jeg henter den med? Når jeg viser kildekode for siden (html) er den lik som uten java-inkludering. Javascriptet inneholder en del window. og document.-kode. Kan det være at dette blir feil siden den åpnes gjennom javakoden? Og evt. løsning?

Lenke til kommentar

En ting du må forstå er når, hvordan og hvor Javascript kjøres.

 

I koden du har limt inn i første post så henter du ned noe fra en URL. Dette "noe" er i dette tilfellet en html-side som inneholder Javascript. Du har ikke vist oss noe kode som forsøker å kjøre Javascriptet på denne html-siden.

 

Er du sikker på at du har forståelse for hva det vil si at Javascript kjøres på klienten? Og hva en klient er? Og hvordan det skiller seg fra serveren?

 

Tenk etter: hva er det koden i første post gjør og hvilken sammenheng har koden over med Javascript? (hint: ingen)

Lenke til kommentar

JavaScript-kode, slik det benyttes i Web-sammenheng, er avhengig av en tolker for å kjøre.

 

De fleste web-browsere inneholder en slik tolker. Når en web-browser finner en <script>-tag, tolkes og kjøres koden som er inne i denne tagen.

 

I koden du viser oss, er det ingen slik tolkemekanisme.

 

Det eneste koden din gjør, er å koble opp mot en HTTP-server, og skrive resultatet til out-strømmen. Ingen komponenter i koden din har noe forhold til JavaScript.

 

Man kan kanskje si at det du holder på med nå, er å lage en primitiv Web-browser uten JavaScript-støtte. Ønsker du JavaScript-støtte, må du lage en tolker, eller bruke noe som finnes fra før, f.eks. Rhino: http://www.mozilla.org/rhino/

 

På meg virker det nesten som om du tror at JavaScript har noe med Java å gjøre. Jeg kan love deg at de to språkene ikke har noe som helst med hverandre å gjøre.

 

Werner

Lenke til kommentar

Takk takk wernie! Det ser ut til at rhino er akkurat det jeg trenger. ("...provide scripting to end users.") Har muligens forklart meg noe krøkkete over, for er klar over forkjellene osv, men håpet jo det var noe standard i java som fikset denne tolkemekanismen/end user-script-muligheten.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...