Gå til innhold

DIV fra en ekstern side med Ajax/javascript?


Anbefalte innlegg

Hei,

Eg driv i desse dager å lager nokre iPhone programmer i HTML, CSS og Javascript. Eg treng i den anledning å hente ein DIV frå ei ekstern nettside (ei nettside som då underforstått ikkje ligg på min eige server.) La oss sei eg vil hende ei nyhetssak frå VG.no. Dette er naturlegvis berre eit fiktivt døme då eg selvfølgeleg kunne nytta RSS mot VG.

 

Saka er at eg fekke det til med PHP, men eg kan ikkje køyre PHP på iPhone.. Det vil berre ikkje klaffe så bra, då alt anna er laga med javascript.

 

Så sei at eg ska hente innhaldet i den første DIV classen "article-content" frå VG som eit døme. Dette skal inn på ei nettside med hjelp av Javascript/Ajax. Berre HTML. Stil tek eg meg av sjølve.

Så, korleis kan eg gjere det? Hadde vært utruleg greitt med ein Loading óg..

 

Kan nokon hjelpe meg? Såg på JQuery Load dømesida, men fann ikkje svar, så ikkje berre post link. Kom med dømer, ver så snill, og forklar gjerne korleis ting fungerer. :)

Lenke til kommentar
Videoannonse
Annonse

XMLHttpRequest ("Ajax") støtter lasting av eksterne sider fra versjon 2 (XHR Level 2), som vertfall er støttet av Firefox og WebKit. Opera vet jeg ikke, og IE8 har en proprietær variant som i grunnen støtter det samme.

"Problemet" er at det, av sikkerhetsgrunner, kreves at den eksterne websiden spesifikt tillater at andre websider skal få laste siden.

 

Hvis den eksterne websiden du tenker på har satt opp tillatelse for sånn ekstern lasting (noe veldig få websider har pr. i dag), så skal det være en veldig enkel rett-frem sak for nettleseren på Iphone. Hvis den ikke har det, så har du neppe noe annet valg enn å først bruke din egen webserver til å laste den eksterne websiden og så laste den eksterne siden fra din egen webserver.

Lenke til kommentar

Web proxyer er en ganske standard måte å løse "problematikken" ved Cross-Domain XMLHttpRequests. Men det er veldig, veldig enkelt å løse det med f.eks. PHP, så det er nok måten du bør gjøre det på. Du kan jo også scrape siden med PHP før du returnerer den til klienten, slik at du kun får returnert diven du er ute etter. Det vil spare deg for en god del hassle senere, ved å få returnert en hel side til klienten som du så må scrape med javascript. Det blir mye datatrafikk av sånt :)

Lenke til kommentar

Takk for svar, men no står eg heilt fast her.

Eg skal nytte PHP scriptet til å hente ut nokre rutetabeller, så det er no greitt. Tenker då på å få PHP til å spytte dei ut som XML.

Men korleis i alle dager kan eg då hente ned den XML-fila og vise den i Appen min.

Kan nokon vere så snill å skrive ein liten guide på det? Eg forstår verkeleg ikkje. Har google i fleire timar no.

Eg eg i ferd med å gje opp!

 

 

Det eg skal gjere er då altså få appen til å sende ei spørring til PHP fila som igjen spytter ut dataene som ei XML fil som då skal opnast.

Altså, får "Min App" til mittdomene.no/phpfil.php (med header som XML fil).

 

Korleis får eg denne inn i javascripten min og spytter den ut i HTML?..

Eg sett umåteleg stor pris på hjelp. Eg eg heilt oppgitt no. Har somsagt googla cross-side xmlar og html, jquery ajax og faen veit kva eg ikkje har sett på. Ingenting gjer dét på mi måte.

Det treng forøvrig berre å fungere i Safari trur eg, då dette skal kompileres til ein App via Phonegap uansett.

Lenke til kommentar

Noen grunn til at det ikke kan være en helt vanlig webapp for iPhone? Hvis det skal være en helt vanlig webapp kan du bruke jQuery til det.

 

​(function($) {
   $.get('urltoserverfile', function(response) {
       $('someElement').html('response');
   };
})(jQuery)​;​

 

Det koden gjør, er at den gjør en asynkron GET-request til PHP-filen din, og legger til responsen fra server i et eller annet element. Er det forresten noen grunn til at du vil returnere dataene som XML? Hvis mulig, ville jeg kanskje returnert dataene som JSON, da kan du bruke $.getJSON-funksjonen i stedet. Men siden det er snakk om en mobilapp her, vil jeg til og med råde deg til å returnere ren HTML fra server, som du da bare appender til et element, da dette vil fjerne en del av loaden fra telefonen. Hvis du returnerer JSON eller XML, vil du måtte bygge opp tabellen på nytt i etterkant, og det er kanskje ikke helt heldig på telefoner, da det kan ta litt lenger tid enn på en desktopmaskin med flere GHz med prosessorkraft.

 

Si ifra hvis det er noe mer du lurer på :)

Lenke til kommentar

Det er fleire grunnar til at eg vil ha det som ein eige app.

Deriblant dei enkelte funksjonar eg ikkje kan gjere med ein vanleg app, pluss at den vart enklare å finne på AppStore.

Dessuten skulle eg óg tatt nokre slantar for den, ikkje noko mykje, men nok til å dekke utgiftene.

 

Med det sagt, eg får ikkje scriptet til å verke..

Det må ikkje vere XML, for all del. Kan bare vere rein HTML eg henter..

Kan du gi meg eit døme? Eit ferdig script som henter ut data?

 

Tusen takk for hjelpa så langt :)

 

 

Redigert: Dette JSON ser interessant ut.

Korleis kan eg gjere det? Sei at eg spytter ut informasjonen i eit JSON objekt på serveren min, frå ei PHP fil då helst. Men då nytter eg vel berre "header('Content-type: application/json');" ?

Kan du skrive eit døme på dét?

Eg skal ha ei rad for rutenummer, og ei for tidspunkt per innlegg (node).

Så skal JQuery spytte dei ut. :hm:

Endret av steffenz
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...