Hali!
a webprogramozastol mindig idegenkedtem, de most elszantam magam es azt is elkezdtem tanulni, vagy valami olyasmi. Elso probalkozasom rogton kifogott rajtam:
Javascriptben megirni a kovetkezot: kolonbozo elore definialt urlek honlapok tartalmabol kivagni egy adott reszt, pl egy beazonosithato div teljes tartalmat(
tol sajat
ig) beszurni a dokumentumba, azaz a megjelenitendo oldalra.
egy nem valos pelda: a hup fooldalanak legfrisebb forumtemak szekciojat egy az egyben megjeleniteni egy oldalon.
iframe el probalkoztam, mert az kepes linkeket megjeleniteni, nem ment.
Otlete van valakinek? Jelen pillanatban ketlem hogy ezt meg lehet oldani javascriptben, hacsak nem esetleg ajax is kell hozza valamifelekepp?
Lehet csak szerveroldali programozassal oldhato meg?
koszi
Zsolt
- 1972 megtekintés
Hozzászólások
XMLHttpRequest? Csak ötlet, nem próbáltam, és js-ben parsolni a html-t lehet h vicces. Persze ha nem kell számítani nagy vagy összevissza html-re, akkor nem lehetetlen.
- A hozzászóláshoz be kell jelentkezni
Ez lenne az ajaxos megoldas, de ahhoz meg nem konyitok...
zsolt
- A hozzászóláshoz be kell jelentkezni
Az ajaxot nem kell túlmiszifikálni, halom példaprogram van a neten. Egy ilyen ajaxos hívás 10 sor (mert sok a komment :)) de kivágni az adott részt... hát... az a neccesebb, szerintem.
Itt egy .txt-t tol be egy frame-be: http://www.w3schools.com/XML/tryit.asp?filename=tryxml_httprequest_js1
Ott a responsetext-ben szerintem visszakapod a html lapot, ha html-t kérsz le. Viszont hogy abból hogyan kotrod ki ami neked kell...
- A hozzászóláshoz be kell jelentkezni
...azt php függvényekkel lenne a legkönnyebb és feltétel a reguláris kifejezések fogalmának elsajátítása.
- A hozzászóláshoz be kell jelentkezni
Hát ahhoz nem kell szerver oldali dolog, hogy regexp-ekkel ki tudjon szedni egy darabot a szövegből. Szerintem ez egyértelműen arról szól, hogy :
1. kell egy ajax-os kérés, ami letölti az adott honlapot
2. getElementById vagy valami hassonlóval, ha kell ír egy getElementsByClass-t (neten van példa rá) kiszedi a megfelelő div-et, esetleg ha több a találat regexp-el vagy indexOf-al megnézi melyik kell neki. Szerintem nem nagy ördőngősség e DOM fát js-el parsolni elvégre majdhogynem arra találták ki.
3. a linkeket hivatkozásokat regexp-el kicseréli hogy a megfelelő helyre mutassanak
4. innerHTML-el betolja a tartalmat a saját html elemébe.
5. Mosolyogva örül neki, és keres valami más kihívást.
- A hozzászóláshoz be kell jelentkezni
"de kivágni az adott részt... hát... az a neccesebb, szerintem" Amennyiben szabványos html, js-el gyönyörűen be lehet járni, nincs ott gond. Az ilyen megoldásokkal az a baj álltalában, ha időközben megváltozik az oldal, mert akkor lehet upgradelni a js kódot is :(
- A hozzászóláshoz be kell jelentkezni
"..elkezdtem tanulni, vagy valami olyasmi.."
Az AJAXtól még messze van a barátunk.
- A hozzászóláshoz be kell jelentkezni
talán ilyesmi: http://webakademia.hu/2007/12/javascript-include/
- - - - -
Tagadom a Microsoft Windowst. Szerintem ilyen operációs rendszer nincs és nem is volt soha. A létezése nem igaz, meg sem történt. Egyszerűen nem hiszem el, hogy van. Nem hiszek a létezésében és abban sem, hogy ilyen.
- A hozzászóláshoz be kell jelentkezni
itt JSsel includalsz JS kodot a doksidba, 1az1be. ami nekem kell, az JSsel includalni egy kulso oldasl htmljenek egy reszet a doksiba.
zsolt
- A hozzászóláshoz be kell jelentkezni
Szvsz ne JS-vel kezd. Inkább először csak sima html-t tanuld. A frame nem egy rossz ötlet. Ha pl RSS formában is elérhető, akkor érdemes PHP-val legyártani a html-t, de ez messzire is vezethet. Amennyiben most ezt minden előtanulmány nélkül szeretnéd megoldani, akkor mindenképpen a frame útján indulj el, talán ez a legegyszerűbb, de meglehet a legcsúnyább is.
- A hozzászóláshoz be kell jelentkezni
Termeszetesen a HTMLt mar attekintettem. Igazabol a w3schools.com oldal tutorialjait csinalom sorba. most a HTML DOM nal tartok mar.
A problema igazabol ez tobbek kozt:
Hello World!
x=document.getElementById("intro");
document.write(x.innerHTML);
Ez siman mukodik ahogy azt gondolnam.
A kovetkezo kod viszont nem, masodszorra csak a Hello szoveg jelenik meg.
Hello
World
!
x=document.getElementById("intro");
document.write(x.innerHTML);
Nyilvan azert mert a div egy uj node a DOM faban... nem teljesen vilagos ez az innerHTML meg...
zsolt
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
_Szerintem_ egy másik oldal ojjektumait így nem fogod tudni kezelni, hacsak nem betöltöd egy 0x0 pixeles (i)frame-be, és: http://www.infimum.dk/HTML/JSwindows.html#ref_2_6
Rém kíváncsi vagyok amúgy, hogy működik-e :D
- A hozzászóláshoz be kell jelentkezni
Ebbol a kommentbol csak a lenyeg maradt ki!
elso kod:
<p id="intro">Hello <b>World</b>!</p>
<script type="text/javascript">
x=document.getElementById("intro");
document.write(x.firstChild.nodeValue);
</script>
masodik:
<p id="intro">Hello <div>World</div>!</p>
<script type="text/javascript">
x=document.getElementById("intro");
document.write(x.firstChild.nodeValue);
</script>
zsolt
- A hozzászóláshoz be kell jelentkezni
ha js-ezni akarsz, akkor fogj egy firefoxot, tedd fel rá a firebug kiegészítőt, és akkor könnyen tudod próbálgatni a kódodat és látod azt is, hogy mit csinál.
Azt ugye tudod, hogy js-ből csak olyan iframe tartalmához férsz hozzá, ami ugyanazon a(z al)domainen van, mint a te oldalad?
Szal a saját oldaladról hiába töltöd a hup.hu oldalát egy iframebe, ahhoz nem fogsz hozzáférni biztonsági okokból.
Ajax is csak saját (al)domainen lévő címet hajlandó betölteni.
- A hozzászóláshoz be kell jelentkezni
Mielott nagyon belelkesednel, keress ra a "same origin policy" kifejezesre.
--
Vorbis megváltoztatta az embereket. Néha halott emberekké változtatta őket. De mindig megváltoztatta őket. Ez volt az ő diadala. - Pratchett
- A hozzászóláshoz be kell jelentkezni
Ok, az en esetemben talan nem jelent biztonsagi kerdest, hiszen csak a masik oldal mforrasahoz akarok hozzaferni html formatumban. Ez az ami nem megy. akkor pl regexpekkel is ki tudnam nyerni a nekem szukseges reszt.
a policy azt mondja hogy bizonyos DOM metodusokhoz es tuljdonsagokhoz nem enged hozzaferni. nem neztem meg igaz hogy mik ezek konkretan. de talan a forras nem tarozik ide. vagy megis? :)
zsolt
- A hozzászóláshoz be kell jelentkezni
Képzeld el a következőt:
Csinál a jófejsrác egy iframet, amibe behívja a gmailt.
Sok embernél a maradjon bejelentkezve opció be van kapcsolva (nem kell jelszót megadni).
"Csak" olvasni fogja az oldal (ami nem a gmail.com) a leveleidet.
Szal ezt ezért nem lehet.
Ezt úgy szokták megoldani (ha jól tudom), hogy
1.) hup.hu kiad egy js filet, amit a kódodba ágyazhatsz, és meghívhatod a metódusokat, stb...
2.) Csinálsz vmi php-t/szerveroldali miskulanciát, ami lekéri az oldalt, és megrágja, majd kiköpi vmilyen formában...
- A hozzászóláshoz be kell jelentkezni
Az <iframe src="http://gmail.com"></iframe> kod szepen mukodne, ha a gmail nem akadalyozna meg a mukodeset, olyan mintha erzekelne, hogy iframebe hivod meg...
barmilyen kulso oldalt be lehet tolteni ugy veszem eszre, a bongeszo ismeri a forrast, de ugy tunik a DOM nem engedi meg - egyebkent sem - egy html lap forraskodjat valtozoba tenni.
Rekurzivan, nagy nehezsegek aran lehetne, ha vegigmesz a fan. ezt senki nem fogja csinalni...
Ez nem egy valos feladat, csupan eppen a html domot, js t tanulmanyozom es felmerult bennem ez a kerdes. Ugy tunik JS bol ezt meg senki nem akrta megoldani vagy rajott hogy ha lehetseges is, nem erdemes.
Most en is ezen az allasponton vagyok. Ebbol azt a kovetkeztetest vonom le, hogy bar sokmindenre jo, nem eleg eros es nem engedheti el az ember a fantaziajat. :)
Pedig milyen jo lenne, nem kene szervert telepiteni... :)
zsolt
- A hozzászóláshoz be kell jelentkezni
Hi, ha mar mindenkepp javascript, nyugodtan kezdj valami libbel. Pl.: jqueryvel, php-ben ez nagyjabol ennyi:
$("#frame").load("load.php?page=http://hup.hu #block-block-16")
/*
* Ahol:
* 1) van az oldaladon egy < div id="frame" > < /div > taged, amelybe
* szeretned tolteni az oldalt
* 2) a load.php egy szerveroldali szkript, amely elvegzi a HUP betolteset
* 3) a #block-block-16 a HUP-on levo fooldali legfrissebb forumtemak doboz.
*/
Persze mivel az XHR nem megy kulso eroforrasra, sajat magadnak kell szerver oldali tamogatassal megoldanod maganak a HUP betolteset. Ez pl.: php-vel curl-lel kitunoen mukodik. A net tele van peldakkal rohadasig.
Sok sikert!
- A hozzászóláshoz be kell jelentkezni
naja csak ha mar van sajat oldalon server oldali tamogatasa akkor mi a francnak ezt ajaxszal csinalni? Fel tudja dolgozni server oldalon is es az egesz javascriptel jatszadozas tok feleslegesse valik
- A hozzászóláshoz be kell jelentkezni
Az altalad felvetett dologban igazad van, a kerdezo azonban szeretne elmelyedni a webprogramozasban. A hsz-em pedig egy peldat mutat arra, hogy milyen egyszeru a js oldali megvalositasa az adott problemanak, ha azt valamilyen libbel csinalja.
- A hozzászóláshoz be kell jelentkezni