
Načtení iFrame
Ahoj, proč mi tohle nefunguje?
<iframe id="mujframe" src="http://foo.bar"></iframe>
<script type="text/javascript">
var obsah = document.getElementById("mujframe");
console.log(obsah);
</script>
Co přesně znamená "nefunguje"?
Když to dám vypsat třeba takto
tak dostanu
To je spravne, nie? Do premennej obsah si si dal objekt iframe.
Aha, a jak z toho objektu získám obsah toho iframe?
Neviem co volas slovom "obsah", ale mozes s tym robit vsetko co je tu
https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement
a tu ptz to je parent trieda https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement
P.S. zrejme chces toto ale ty vies co chces, moznosti je asi 500 https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/contentDocument
t.j. obsah.contentDocument a potom s tym sa da robit toto https://developer.mozilla.org/en-US/docs/Web/API/Document
No chtěla bych vypsat na obrazovku to co je uvnitř toho iframe, to co se do něj načetlo.
Uvnitr iframe je webstranka. Jak sa da vypsat webstranka?
Nebudu načítat webstránku, na výstupu je jen pár znaků.
Teď jsem navíc dostala tuto chybu.
Ked tam nedas platny iframe s html sekciou, tak mas smolu.
A ani neviem co tam vobec presne robis a co tam mas presne za script. http://foo.bar logicky vrati hovno
Pokud ale mam jen iframe bez JS tak se obsah načte normálně tak proč už to nemůžu načíst do JS? Obsah třeba DIV-u taky můžu načíst a dál s tím pracovat.
http://foo.bar vrací jen třeba tohle
Ja ti rozumiem ale tvoj koncept je vadny.
(a pisem ze ak tam mas doslovne foo.bar, tak to nevracia nic. Nikto nevie co tam mas naozaj, pises tu nejake vlastne obmeny).
A v čem je tedy problém v tom http://foo.bar nebo v tom co to vrací nebo v něčem jiném?
namiesto foo.bar si musis napisat URL na svoj server. OMG.
A dalsi problem je ze ten server vracia nevalidny html kod (to sa da obist ale nemozes cakat ze bude fungovat vsetko tak jak s validnym HTML)
P.S. skus aj obsah.outerHTML a hore mas linky tak si studuj dalsie property tych objektov.
Můžu volat co chci jelikož se jedná pouze o domácí síť, a v souboru hosts si ji nasměruji na potřebnou IP adresu nebo můžu volat přímo IP adresu pokud to pomůže. To že to nevrací validní html kód nijak neovlivním, vrací to pouze čísla bez jediného html tágu.
No tak si tam namiesto toho foo.bar napis URL (IP) na ten server. Az potom testuj.
Je to stejný i pokud volám přímo IP adresu.
Celý to mám teď takto, už fakt nevím no
A vypise to teda co v tych alertoch?
Vypíše se pouze první alert
a poté dostanu chybu
Proste sa to tak nerobi.
https://stackoverflow.com/questions/6357041/get-iframe-innerhtml-using-javascript
viz odpoved.
Normalne je urobit si server s PHP a nehrat sa na klientovi s debilnymi javascriptami.
Jasně, chápu to, ale opravdu nevím proč když z jiné domény to načítá html a to se úspěšně i načte, tak nechápu, proč JS nedokáže z již načtené stránky načíst pár znaků :(
Lebo tak to je kvoli bezpecnosti.
Navyse ten script musi cakat kym sa nacita iframe, on bezi skor jak sa nacital iframe.
https://stackoverflow.com/questions/19384661/iframe-onreadystatechange-function
Proaste sa to tak nerobi, je to dementne riesenie. Resp neni to ziadne riesenie.
Tak budu muset zůstat u XMLHttpRequestu a IE11, tam to funguje bez problémů.
Nemusis zustavat u dementych klientskych scriptov a riesit 350 verzii prehliadacov z ktorych 250 nefunguje lebo do toho vsetci seru, mozes si urobit php server. Ale rob co chces mne je to jedno. XMLHttpRequest by mal fungovat aj na ostatnych prehliadacoch.
Preco si nenainstalis nejaky php server ale bastlis tam nejake XSS?
PHP: https://stackoverflow.com/questions/11363022/get-url-content-php
PHP server je řešení, ale je nesmysl aby běžel celé dny nějaký počítač jen pro to abych získala pár čísel.
V každém případě díky moc za tvůj čas!
A ten HTML s javascriptom bude kde? Ne na beziacom pocitaci?
Ak to ma byt html subor na lokali, tak to si rovno mozes napisat aplikaciu v C# (C++, delphi, cokolvek) apod, a neznasilnovat webove prehliadace.
P.S. a da sa trebars aj upravit to co bezi na tej 192.168.0.200, ak to je nejake raspberry apod.
Na telefonu a tabletu v prohlížeči.
HTML bude ulozeny na telefonu??? Potom rob app, a ne HTML. Znasilnujes veci na nieco na co nie su urcene.