ugrás a tartalomhoz

Iframe gondok.

therest · 2012. Aug. 14. (K), 11.16
Sziasztok!

Adott egy html szelet:
  1. <div style="margin:10px;">  
  2.     <iframe name="myframe" id="myframe" src="mypage.php"></iframe>  
  3. </div>  
Ezt egy ahogy van beállítom egy másik div innerHTML-jének. A dokumentumfában megjelenik az iframe, de a tartalom betöltése nem történik meg, hanem üres marad.

Az appendChild, jQuery a környezet miatt nem játszik, tehát arra lennék kíváncsi, hogy van-e valami megoldás arra, hogy egy ilyen módon betöltött iframe megjelenítse a saját tartalmát.
 
1

Elérési út

Poetro · 2012. Aug. 14. (K), 11.25
A mypage.php elérési útja helyes? Azaz az aktuális oldalhoz képest ott van a mypage.php? Azaz ha nem JavaScripttel szúrod be a tartalomba az iframe-et, akkor megjelenik benne a tartalom? És mi a baj az appendChild-dal? Milyen környezet akadályoz meg a használatában?
2

Megnéztem egy egyszerű

therest · 2012. Aug. 14. (K), 12.14
Megnéztem egy egyszerű tesztverzióval:
  1. <html xmlns="http://www.w3.org/1999/xhtml">  
  2. <head>  
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  4. <title>Untitled Document</title>  
  5. </head>  
  6. <script>  
  7. function onloaded() {  
  8. document.getElementById('loadtarget').innerHTML='<div id="myframe"><iframe name="myframe" id="myframe" src="mypage.php"></iframe></div>';  
  9. }  
  10. </script>  
  11. <body onload="onloaded()">  
  12. <div id="loadtarget">  
  13. </div>  
  14. </body>  
  15. </html>  
Itt tutira egy helyen van ez a fájl és iframe forrásfájlja. Nem megy.

Azért nem jóaz appendChild, mert egy tőlem független betöltő rendszer részeként kapom meg a html-t, és a rendszer sztringet ad vissza. A string nem mindig html,stb.
  1. document.getElementById('target').innerHTML=loader.getContent('mypage');  
3

Mégis működik, csak a fájl

therest · 2012. Aug. 14. (K), 12.24
Mégis működik, csak a fájl amit betöltöttem, valamiért üres tartalmat ad vissza, és ez tévesztett meg. Szóval hamar kiáltottam farkast, elnézést.

(Facebook login átirányításokkal hadakozok, de úgy hogy a php és a Facebook között van még egy C# webservice is, és ezek között van mindenféle hívás/redirect).
4

Tipp: Próbáld meg úgy, hogy

Karvaly84 · 2012. Aug. 14. (K), 12.27
Tipp:

Próbáld meg úgy, hogy a dokumentumban nem betöltés közbe szúrod be az iframe-t, hanem csak az src tulajdonságát állítod akkor ha betöltődött az oldal, vagy beilleszted az iframe-et és utána adsz neki forrást.
5

Minden esetre a hiba nem

therest · 2012. Aug. 14. (K), 12.41
Minden esetre a hiba nem tiszta előttem, mert ha simán a böngészőben meghívom a "mypage.php"-t akkor landolok az Facebook login oldalán, de ha iframe src-nek adom meg ugyanezt a fájlt forrásnak, akkor nem jutok el odáig. Nem kéne az iframenek is teljesen úgy működnie mint az őt tartalmazó ablaknak?
6

Attól függ

Poetro · 2012. Aug. 14. (K), 14.10
Attól függ, mit tartalmaz a mypage.php. Ha valami JavaScript furmány generálja a tartalmat bele, akkor simán lehetnek vele gondok. Ez azért van, mert a Facebook nem szereti, ha te egy külön iframe-ben jeleníted meg az ő tartalmát, mert ez lehetővé teszi a szolgáltatásaik mindenféle rosszindulatú használatát (például egy láthatatlan iframe-re kattintasz ezzel Like-olsz valamit, amit igazából nem is szerettél volna stb.). Legjobb, ha Facebook tartalmat nem raksz iframe-be, mert csak magadnak okozol extra fejfájást.
7

Az a gond, hogy a

therest · 2012. Aug. 14. (K), 14.58
Az a gond, hogy a termék-tervezők úgy álmodták meg, hogy a minden ilyen szép kis modalboxokban jön az oldalon, és az fb-login oldalát is így kéne, ha lehet, mert egy popup vagy egy új oldal teljesen kilógna ebből. Nagyon nincs ötletem, hogy iframe-en kívül még mivel lehetne megoldani. Nektek?
8

popup

Poetro · 2012. Aug. 14. (K), 15.02
Az FB login mindenképpen popup lesz, mivel a FB így álmodta meg, és nem tehetsz ellene semmit. Ennek következtében az az oldalrészlet, ami FB bejelentkezést igényel mindenképpen iframe-en kívül kell, hogy legyen, hogy működjön a bejelentkezés. A modal boxok ezen kívül nem feltételezik azt, hogy iframe-ben kell lenniük a tartalmaknak, simán meg lehet oldani AJAX-szal is.
9

Csak a facebook login lett

therest · 2012. Aug. 14. (K), 15.12
Csak a facebook login lett volna iframeben, minden más természetesen ajax-xal van megoldva.