ugrás a tartalomhoz

Iframe gondok.

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

Adott egy html szelet:

<div style="margin:10px;">
    <iframe name="myframe" id="myframe" src="mypage.php"></iframe>
</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:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<script>
function onloaded() {
document.getElementById('loadtarget').innerHTML='<div id="myframe"><iframe name="myframe" id="myframe" src="mypage.php"></iframe></div>';
}
</script>
<body onload="onloaded()">
<div id="loadtarget">
</div>
</body>
</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.

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.