Html a htmlben és a javascript
A következőt kéne megvalósítanom:
Teljes funkcionalitású html tartalmat kellene egy másik domainen elhelyezkedő oldalon belül megjelenítenem, és a két oldal közötti javascript kommunikációt megvalósítani. Tehát beágyazott részből is el lehessen érni a "külső" részek függvényeit, illetve a tartalmazó részekből is hívhatóak legyenek a beágyazott részek egyes funkciói.
Megvalósítható ez valahogy? Milyen módszerekkel? Mik a korlátok ha vannak. Nekem iframe ugrott be, amiről mindig az jut eszembe, hogy hány helyen szapulják, de közben mondjuk a Facebook is épít rá. Találkoztam olyan beépítéssel is, hogy a távoli html tartalmat object-ként emelték be, ilyenkor elérhető-e valamilyen módon a beágyazott tartalom JS tartalma?
■ Teljes funkcionalitású html tartalmat kellene egy másik domainen elhelyezkedő oldalon belül megjelenítenem, és a két oldal közötti javascript kommunikációt megvalósítani. Tehát beágyazott részből is el lehessen érni a "külső" részek függvényeit, illetve a tartalmazó részekből is hívhatóak legyenek a beágyazott részek egyes funkciói.
Megvalósítható ez valahogy? Milyen módszerekkel? Mik a korlátok ha vannak. Nekem iframe ugrott be, amiről mindig az jut eszembe, hogy hány helyen szapulják, de közben mondjuk a Facebook is épít rá. Találkoztam olyan beépítéssel is, hogy a távoli html tartalmat object-ként emelték be, ilyenkor elérhető-e valamilyen módon a beágyazott tartalom JS tartalma?
Rengeteg módszer
iframe
és a harmadik fél oldala közötti kommunikációval, még csak olyan kis részletek miatt is, mint aziframe
átméretezése a benne levő tartalom miatt. Mivel valahogy a harmadik fél oldalában levő szkript tudtára kell juttatnod hogy megváltozott aziframe
-ben levő tartalom magassága például.Erre a modern böngészőkben létezik a postMessage metódus, amivel a két "ablak" között lehet adatokat küldözgetni, legjobb, ha String formájában ugyanis egyéb objektumok forgalmazása nem minden böngészőben támogatott. A String formát legjobb, ha JSON-ban valósítja meg az ember, mert abba bonyolultabb adatokat is be lehet csomagolni, illetve onnan kicsomagolni. Amennyiben 9-esnél régebbi IE-t is támogatni akarsz, akkor meg kell valósítani a
postMessage
emulációt azokban a böngészőkben, amelyek ezt nem támogatják. Ezt aziframe
name
tulajdonságának illetve URL-jének módosításával lehet elérni, illetve léteznek kész könyvtárak is, minta amilyen a Josh Fraser féle.Amennyiben lehetőséged van egy általad írt fájlt a célszerverre juttatni (azaz megegyeztél a harmadik féllel, hogy hosztoljon neked egy HTML fájlt, amit te írtál), akkor még összetettebb kommunikációt is megvalósíthatsz. Ezt úgy kell elképzelni, hogy a te
iframe
-edbe elhelyezed a harmadik fél oldalán levő HTML-t, és azt az iframe-et méretezed át, és annak az URL-jét módosítva tudsz kommunikálni a harmadik féllel. Valamint a harmadik fél oldalában elhelyezel még egy iframe-et, ami a te domain-edről jön, és ekkor annak az átméretezésével, és URL-jének módosításával tud kommunikálni a harmadik fél a te oldaladdal. A cross domain kommunikációról van egy részletes cikk, érdemes elolvasni.Ezer hála és köszönet! Már
Amire hajtok a dologgal, az egy szolgáltatás amit az oldalba tudnak a partnerek illeszteni. A betöltött tartalom minden partnernél nagyjából ugyan az, de a stílus a partner környezetéhez illeszkedik.
Az terület amin a beágyazott tartalom elhelyezkedik fix méretű lesz (partnerenként más lehet), az esetlegesen "kilógó" tartalmakat jquery alapú scroll-al fogom megoldani.
Egyelőre úgy fest, hogy ie7ig támogatnom kell. :(