Autor Zpráva
hordubal
Profil
Omlouvám se za možná triviální dotaz. Jde o následující:

Chci pomocí JavaScriptu projít několik HTML stránek a v nich něco vyhledat. První problém, na který jsem narazil, je načtení textu stránky do stringu.

Otázka tedy zní: jak načtu externí soubor (soubor na nějakém serveru) do stringu?

Ještě dovětek: někde jsem tady našel zmínku, že JavaScript neumí pracovat se soubory (což by znamenalo, že obecně načíst soubor do stringu nelze). Nicméně chci načítat HTML stránku, což JS umí. Zkoušel jsem něco ve smyslu otevřít pomocí wïndow.open nové okno, a pak se nějak dostat k documentu, ale nevím 1) jak počkat až se celý obsah načte a 2) jak dostat HTML kód z documentu v jiném okně do stringu
habendorf
Profil
Tak tu stránku můžeš natáhnout třeba do iframu, najít v ní tag <html> a do stringu zapsat jeho innerHTML (nebo outerHTML, záleží jak to chceš). Teoreticky. Prakticky možná narazíš na nějaké bezpečnostní omezení, nevím - vyzkoušej.
peta
Profil
habendorf
mno, v mozille existuje i document.innerHTML
myslim, ze u cizi stranky by to melo byt bez problemu, ale tez si nejsem jist

hordubal
kazdopadne muzes pouzit PHP file(URL) a tuto stranku si poslat jako svou vlastni a tim padem eliminujes bezpecnostni JS opatreni.
http://www.volny.cz/peter.mlich/www.htm#mssub16
zasilani dat = httpRequest / IFRAME.src / SCRIPT.src / IMG.src cookies / JavaApplet
hordubal
Profil
JavaScript bohužel moc neznám (toto je můj první pokus), takže iframe mi moc neříká.

Nerozumím ani moc doporučení "pouzit PHP file(URL) a tuto stranku si poslat jako svou vlastni".

Vyřešil jsem to prozetím hooodně kostrbatě: udělal jsem si krátké PHP které dostane jako parametr URL, stáhne si ho, prohledá, a výsledek uloží do cookie

A JavaScript si vyvolá toto PHP v cyklu, s několika různými parametry (různými URL), a sbírá hotové cookies. Nejjednodušší by to jistě bylo udělat celé v PHP, ale když je těch prohledávaných souborů víc, tak může vypršet časový limit PHP, a taky nemám průběžně přehled jak to zrovna vypadá.

Nevýhoda mého řešení je v tom, že se otevírají nová okna, což zabere nějaký čas (a nevypadá to pěkně). To by možná odstranily ty iframy. Budu se muset podívat co je to zač.

Každopádně díky všem.
habendorf
Profil
JavaScript bohužel moc neznám (toto je můj první pokus), takže iframe mi moc neříká.

On taky iframe nemá s JS nic společného.
hordubal
Profil
Aha. Tak už jsem zjistil co je to ten iframe za zvíře. Ale tohle řešení pomocí iframe sice neotvírá nové okno prohlížeče, ale na druhé straně natáhne navíc i grafiku. Dá se tomu nějak zabránit? Obávám se, že asi ne, takže s rychlost asi o moc lepší nebude.

No, asi ta úloha opravdu není pro JS.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0