Javascript/JQuery Nacitanie dat z inej stranky

Programovacie jazyky, rady, poradňa...
t0m4s3
Admin
Admin
Používateľov profilový obrázok
Príspevky: 18096
Registrovaný: 14 jún 2004, 18:35
Bydlisko: Martin SR, Brno CZ
Kontaktovať používateľa:

Javascript/JQuery Nacitanie dat z inej stranky

Príspevok od používateľa t0m4s3 »

Potrebujem jednoduchy skript, ktory mi na zobrazenej stranej stranke zobrazi data z inej stranky. Tzn. ze nachadzam sa na stranke1, kde pomocou Greasemonkey scriptu chcem "vytiahnut" napr. cast kodu z inej stranky, spracovat a zaclenit do stranky. Zrejme sa to bude dat spravit pomocuo JQuery, ale nemam s tym ziadne skusenosti, za nakopnutie dakujem.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Javascript/JQuery Nacitanie dat z inej stranky

Príspevok od používateľa audiotrack »

a tá "druhá" stránka je na rovnakom serveri ako prvá?
t0m4s3
Admin
Admin
Používateľov profilový obrázok
Príspevky: 18096
Registrovaný: 14 jún 2004, 18:35
Bydlisko: Martin SR, Brno CZ
Kontaktovať používateľa:

Re: Javascript/JQuery Nacitanie dat z inej stranky

Príspevok od používateľa t0m4s3 »

Ano je.
- prva stranka je napr. /game/
- druha stranka sa vola pomocou odkazu /game/cards/ a toto ta opat odkaze na /game/ pricom ti zobrazi podstranku "cards"
- ja potrebujem pri otvoreni tej prvej stranky /game/ vytiahnut cast zdrojoveho kodu (jedna obycajna tabulka kde su data, bohuzial bez ID tagov) zo stranky "game" ktora sa zavola tym /game/cards/ - nasledne ich spracovat a vlozit do stranky
propernex
Medium Star
Medium Star
Príspevky: 340
Registrovaný: 13 máj 2005, 17:59

Re: Javascript/JQuery Nacitanie dat z inej stranky

Príspevok od používateľa propernex »

neviem, či ti to pomôže ale ja na parsovanie určitých údajov z iného webu využívam toto http://simplehtmldom.sourceforge.net/manual.htm neviem, či sa to hodí na ten tvoj prípad
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: Javascript/JQuery Nacitanie dat z inej stranky

Príspevok od používateľa chrono »

Skús sa pozrieť na http://userscripts.org/guides/9 (konkrétne na funkciu getDOC pomocou ktorej si stiahneš tú druhú stránku a vytvoríš si nový html dokument a potom to skombinuješ s XPath...).
t0m4s3
Admin
Admin
Používateľov profilový obrázok
Príspevky: 18096
Registrovaný: 14 jún 2004, 18:35
Bydlisko: Martin SR, Brno CZ
Kontaktovať používateľa:

Re: Javascript/JQuery Nacitanie dat z inej stranky

Príspevok od používateľa t0m4s3 »

@propernex - potrebujem to v Javascripte, pretoze to ma byt Greasemonkey script
@chrono - zbezne to vyzera ako presne to co potrebujem, pozriem sa snad na to pocas dna

//autoeditácia príspevku (09 Feb 2011, 13:41)
skript slape perfektne, Diky!

//autoeditácia príspevku (09 Feb 2011, 18:18)
Tak este je tu jedna drobnost, vzdy po kliknuti na nejaky odkaz, resp. nieco co generuje opat tu stranku ma prehodi na tu podstranku /game/cards/ (z ktorej si taham tie data) co nie je moc ziaduce. Nejaky napad preco to robi?

//autoeditácia príspevku (09 Feb 2011, 18:41)
Takisto narazam na jeden problem

Kód: Vybrať všetko

var holder = document.createElement('div');

GM_xmlhttpRequest({
	method: 'GET',
	url: 'http://osadnici.happz.cz/game/settlers/cards/',
	onload: function bla(responseDetails) {
		holder.innerHTML = responseDetails.responseText.split(/<body[^>]*>((?:.|\n)*)<\/body>/i)[1];
	}
});
window.alert(holder.innerHTML);
holder.innerHTML je prazdne pricom moj ciel je tam mat ulozene data z tej inej stranky.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Javascript/JQuery Nacitanie dat z inej stranky

Príspevok od používateľa audiotrack »

Tej prvej časti (autoedit o 18:18) nerozumiem. Aké linky máš na mysli? Skús to podrobnejšie rozpísať

k tej druhej časti (autoedit o 18:41):
robíš rovnakú chybu ako chalan v tejto téme: http://www.hojko.com/jquery-globalne-pr ... 54811.html (konkrétne si prečítaj moju poslednú reakciu a popis k jeho prvému prípadu). Nechce sa mi to znova rozpisovať, ale v skratke iba toľko že tá hodnota nie je prázdna, len ju vypisuješ skôr ako sa naplní lebo si neuvedomuješ že sa to volá asynchrónne. Ak si to p repíšeš takto:

Kód: Vybrať všetko

var holder = document.createElement('div');

GM_xmlhttpRequest({
   method: 'GET',
   url: 'http://osadnici.happz.cz/game/settlers/cards/',
   onload: function bla(responseDetails) {
      holder.innerHTML = responseDetails.responseText.split(/<body[^>]*>((?:.|\n)*)<\/body>/i)[1];
      window.alert(holder.innerHTML);
   }
});
tak ti to vyhodí obsah tej stránky ako požaduješ.
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: Javascript/JQuery Nacitanie dat z inej stranky

Príspevok od používateľa sharky-no »

chrono napísal:Skús sa pozrieť na http://userscripts.org/guides/9 (konkrétne na funkciu getDOC pomocou ktorej si stiahneš tú druhú stránku a vytvoríš si nový html dokument a potom to skombinuješ s XPath...).
ked bola tato tema aktivna, tak som si ten kod odskusal a fungoval, a teraz ked by som ho rad vyuzil, tak mi to nejako nejde.

som debil?
alebo to prestalo fungovat :roll:

chyba z firebugu -> GM_xmlhttpRequest is not defined

Kód: Vybrať všetko

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">    
  <head>           
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />       
    <title>omfg</title>    

    </head>
  <body>
    <div id="body">
    


     
<script type="text/javascript">           

function getDOC(url, callback) {
    GM_xmlhttpRequest({
        method: 'GET',
        url: url,
        onload: function (responseDetails) {
          var dt = document.implementation.createDocumentType("html", 
              "-//W3C//DTD HTML 4.01 Transitional//EN", "http://www.w3.org/TR/html4/loose.dtd"),
            doc = document.implementation.createDocument('', '', dt),
            html = doc.createElement('html');

          html.innerHTML = responseDetails.responseText;
          doc.appendChild(html);
          callback(doc);
        }
    });
}


getDOC('http://www.google.sk', function(doc) {  alert(doc.documentElement.innerHTML) });
  
</script>

    </div>           

  </body>
</html>
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Javascript/JQuery Nacitanie dat z inej stranky

Príspevok od používateľa audiotrack »

sorry, že tak narovinu, ale hej, si debil :)

tu sme sa bavili o Grease Monkey skripte (prečítaj si ešte raz prvý príspevok) a ty sa ho snažíš hodiť do html stránky. To ti nebude nikdy fungovať. Ak ti to vtedy fungovalo, tak si sa debilom stal až po tom a vtedy si to skúšal cez gm :)
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: Javascript/JQuery Nacitanie dat z inej stranky

Príspevok od používateľa sharky-no »

:lol: a ja ze preco tam je ten prefix GM pred tou funkciou :oops:
Napísať odpoveď