HTML iframe redirect url

HTML iframe redirect url
2019-07-31T23:21:53+02:00
2019-08-01T12:29:07+02:00
2022-08-19T00:17:50+02:00
cocoya3
Sziasztok!

Detektálni szeretném egy iframe redirect url-jét, de az iframe-től nem tudom elkérni az onload() eseményben az url címet. Konkrétan az alert() meg sem mukkan, ha az a változó benne van (google-el kotorásztam, és összesen ezt találtam). Az üres alert feljön, szóval onload() hívás történik, de az a változó valószínűleg nem létezik, és azért hal meg az alert(). Ami eredeti cím az src-ben van, igazából mindegy is. Ami kellene, hogy az alert értelmes adatot adjon vissza. A tesztlapra szeretnék egy javítást kérni:

<!DOCTYPE html> <html> <body> <iframe id="fb_login_frame" style="border:3px double lightgrey;" onload="alert(this.contentWindow.location.href);" src="https://mail.yahoo.com" ></iframe> </body> </html>
Mutasd a teljes hozzászólást!
Annyit tudtam találni kis keresgélés után, hogy a szabvány szerint alapesetben más origin-ről jövő objektumokat egyáltalán nem lehet elérni, és az a pár dolog, amit egyáltalán enged a Window-n és a Location-ön, az legacy okokból teszi. Az engedélyezett property-k listája is megtalálható a linken.

Indoklást nem raktak mellé, de gondolom az a megfontolás mögötte, hogy a te oldaladnak semmi köze hozzá, hogy mi történik egy másik oldalon, ki hová navigál, még akkor sem, ha te töltötted be azt az oldalt iframe-be. Lazítani csak akkor lehet ezen a szigoron, ha a betöltött oldal is együttműködik (átállítja a document.domain értékét), de akkor is csak olyan oldalak között, amik ugyanannak a domain-nek az aldomain-jein laknak.
Mutasd a teljes hozzászólást!

  • Így működik?

    <!DOCTYPE html> <html> <body> <script type="text/javascript"> function fbFrameLoad(iframe) { alert(iframe.src); }; </script> <iframe onload="fbFrameLoad(this)" id="fb_login_frame" style="border:3px double lightgrey;" src="https://mail.yahoo.com" ></iframe> </body> </html>

    sorry, ha irreleváns, előbb válaszoltam, aztán láttam csak meg, hogy cocoya3 vagy ... Ezesetben lehet nem olvastam el figyelmesen a kérdést :O

    --> igen, nem figyeltem... viszont már nem tudom törölni, szóval megpróbálok találni vmi értelmeset...
    Mutasd a teljes hozzászólást!
  • A nick-em számít bármit egy technikai probléma megoldását illetően? 

    Az src visszaadja azt, amit én írok bele. Redirect után sajnos nem követi az új címet. Az iframe végrehajtja a redirect-et, az új tartalmat betölti, az src-ben viszont végig a régi cím marad, nem követi a redirect-et.

    Ha számíthat bármit, leguccsó google chrome-ot használok win10 desktop környezetben.
    Mutasd a teljes hozzászólást!
  • Igen, tudom, figyelmetlen voltam... az előbb az egész választ átírtam, de mire elküldtem volna, már nem lehetett, szóval, itt: iFrame src change event detection? leírják a kommentekben, hogy a .href "is available for other domains, but only for writing." ... Viszont a this.contentWindow.location "is available for other domains" ... Azt viszont, hogy a location-ből mit tudsz ezesetben kihalászni nem tudom (nem volt dolgom még hasonlóval, csak amikor gyorsba válaszoltam (mint az a válaszból is látszik), azt hittem, valami nagyon alap kérdésről van szó)

    Egyébként nekem még ezt dobta a google (találkoztál vele? segít valamit?):
    github/iframe URL change listener
    Mutasd a teljes hozzászólást!
  • Szóval a hús a levesben kb annyi, hogy "this.contentWindow.location" - ami viszont nem ad vissza címet. Azok a felírások 2015-ösek, azóta megváltozhatott pár dolog.

    Hány féle módon lehet egyébként javascriptben idegen domain-ről box-ban weblapot tölteni? Az iframe nincs kőbe vésve.
    Mutasd a teljes hozzászólást!
  • Komplett html kell, stylesheetel, mindennel együtt, vagy elég csak adat, mondjuk JSON-ban? Mi a konkrét cél? (Túl késő van ahhoz, hogy ez most tisztán lejöjjön nekem a kérdésből)

    ... Ha elég csak az adat, (bár ez is '15-ös) lehet ezzel nyitnám a napot: 10.4: Loading JSON data from a URL (Asynchronous Callbacks!) - p5.js Tutorial
    Mutasd a teljes hozzászólást!
  • Ismerem az xhr lehetőségeit, de sajnos kellene nekem a teljes script engine mindenestül. Bármit is tölt a felhasználó, annak élő tartalomnak kell lennie. A felhasználónak tudnia kell formot submittolnia, cookie-t feltöltenie.

    Bináris platformon van webview, és lehet lépésenként vizsgálni / vizsgálat függvényében engedni a redirect-et. (Végső soron egy https get lesz ott, aminek a paraméterei kellenek nekem.) Kerestem volna weben valami hasonló lehetőséget.

    Ezen a linkeden:
    iFrame src change event detection?
    Volt egy megjegyzés a címváltozás megfigyelésére (iframe.contentWindow.location.href)-el:

    Note: The above snippet would only work if the iframe is with the same origin.

    Lehet tudni róla, hogy ha direkt vezettek be olyan korlátozást, azt miért tették? Van arról valami blog, ahol esetleg külön megemlíthettek engedélyező kivétel eseteket? Részemről nem sikerült felkutatnom, bármi is történt a múltban az ügyben.
    Mutasd a teljes hozzászólást!
  • Annyit tudtam találni kis keresgélés után, hogy a szabvány szerint alapesetben más origin-ről jövő objektumokat egyáltalán nem lehet elérni, és az a pár dolog, amit egyáltalán enged a Window-n és a Location-ön, az legacy okokból teszi. Az engedélyezett property-k listája is megtalálható a linken.

    Indoklást nem raktak mellé, de gondolom az a megfontolás mögötte, hogy a te oldaladnak semmi köze hozzá, hogy mi történik egy másik oldalon, ki hová navigál, még akkor sem, ha te töltötted be azt az oldalt iframe-be. Lazítani csak akkor lehet ezen a szigoron, ha a betöltött oldal is együttműködik (átállítja a document.domain értékét), de akkor is csak olyan oldalak között, amik ugyanannak a domain-nek az aldomain-jein laknak.
    Mutasd a teljes hozzászólást!
  • Sajnos olyan támogatásom most nem lesz. Ha jól értettem, a szabvány azt mondja, asszimilálni fognak, és minden ellenállás hasztalan 

    Köszönöm a segítséget mindkettőtöknek. Az utolsó kérdés még, hogy mit kellene kezdenem ezzel a topiccal?
    Mutasd a teljes hozzászólást!
abcd