no tak jednou zase potrebuju javascript (protoze flash je imnsho jeste vetsi prasarna) a zasekl jsem se na tomto:
mam iframe a z jineho iframe potrebuji zmenit jeho adresu... no v opere se mi to povedlo hned nekolika zpusoby..
top.frames[].location
parent.getelementbyid[].src atd..
ale muj milovanej firefox to furt nechce zrat...
plssssssss poradte "jak na to"
Fórum › JavaScript, AJAX, jQuery
Iframe
tak se mi to podarilo takto:
parent.window.frames.location
top.window.frames[].location nefunguje v IE :-( Nemuze nekdo poradit neco, co funguje vsude (tedy Opera, Firefox, IE)???
A co takhle do tech zavorek vlozit nulu? Me to funguje uplne ok ;)
grrrrrrr v tech zavorkach mam "name"
top.window.frames["files"].location
chjo.. to tu nikdo nenapise kousek kodu?
Mně top.window.frames[N].location=adresa v IExploreru funguje normálně.
Jinak jsem dal dohromady necelou desítku způsobů, a protože v IE většina funguje, přikládám 2 soubory s kódem, které po zkopírování a spuštění v Opeře či FF budeš moc použít k nalezení řešení (jak dopadl IE je u jednotlivých metod uvedeno vč.chybových hlášení).
Zajímalo by mě, která metoda se dá použít nejen u IE,tak dej vědět. Petr.
!!! oba soubory dej do 1 složky; pak otevři MAIN.HTML !!!
<HTML><HEAD>
<META HTTP-Equiv="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<TITLE> MAIN.HTML [k testování kódu = souboru v iframe] </TITLE>
<style>
body { margin: 0; font: 12pt monospace}
div {display:inline; margin: 1px 4px}
#menu { height: 32.5em}
#container { height: 20em; width: 56% }
div textarea { height: 24em; width: 40%; vertical-align:top }
</style>
<!--
Soubor pojmenuj "MAIN.html"
Dej do stejné složky jako "TESTOVANY_IFRAME.html"
Otevři - nejlíp v maxim.okně
-->
</HEAD><BODY>
<iframe id="menu" name="menu" src="TESTOVANY_IFRAME.html"
vspace="4" hspace="4" width="100%" height="65%"></iframe>
<div>
<textarea id="info" cols=50 rows=22></textarea>
</div>
<div id="container">
<iframe id = "files" name = "files"
src = "javascript:'<H1> IFRAME [ id = name = \'files\' ]</H1>'"
width = "100%" height = "100%" ></iframe>
</div>
</BODY></HTML>
<HTML><HEAD>
<META HTTP-Equiv="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<TITLE>JS procedury v IFRAME1 ke změně obsahu IFRAME2[id=name="files"]</TITLE>
<!--
Soubor pojmenuj "TESTOVANY_IFRAME.html"
Dej do stejné složky jako "MAIN.html"
-->
<style>
body {font: 10pt monospace}
b {color:red} b,h4,h5 {font-family:Arial; line-height: 2px}
p.txt {text-align:right; color:green; line-height: 0}
div {padding:6pt; margin:2px; border: solid 2px red; }
div.hd {width: 14em; text-align:center; border-width: 2pt}
div.tst { border-width:0; padding:0 0 10pt}
#vstup {width: 85%} #subb { width:6em; height:2.8em}
</style>
<script language="javascript">
var infoHTML =
" (1) Nahrání stránky (adresa=URL) do rámce:\n"+
" Dvě základní metody jsou:\n"+
" (1a) {IFrame_Window}.location = URL\n"+
" (1b) {IFrame_Element}.src = URL\n"+
"\n"+
"(A)_________{IFrame_Window}___________________\n"+
"top.frames['files']\n"+
"top.frames.item('files')\n"+
"top.frames.files\n"+
"top.document.frames['files']\n"+
"{IFrame_Element}.contentWindow\n"+
"\n"+
"(B)_________{IFrame_Element}__________________\n"+
"top.document.getElementById('files')\n"+
"top.document.getElementsByName('files')[0]\n"+
"top.document.getElementsByTagName('iframe')[1]\n"+
"{IFrame_Window}.frameElement\n"+
"\n"+
"DRAG & DROP >>> Tester ";
function newIF_1a(src) {
top.frames["files"].location=src;
}
function newIF_1b(src) {
top.frames["files"].src=src;
}
function newIF_1c(src) {
top.frames["files"].frameElement.src=src;
}
function newIF_2a(src) {
top.document.getElementById("files").location=src;
}
function newIF_2b(src) {
top.document.getElementById("files").contentWindow.location=src;
}
function newIF_2c(src) {
top.document.getElementById("files").src=src;
}
function newIF_2(src) {
top.document.getElementById("files").contentDocument.parentWindow.location=src;
}
function newIF_3a(src) {
var w=top.document.getElementById("container");
w.innerHTML=
'<iframe id="files" name="files" src="'+src+'" width="100%" height="100%"></iframe>';
}
function newIF_3b(src) {
var w=top.document.getElementById("files").parentElement;
w.innerHTML=
'<iframe id="files" name="files" src="'+src+'" width="100%" height="100%"></iframe>';
}
function newIF_4(src) {
var w=top.window.document.getElementById("files");
w.outerHTML=
'<iframe id="files" name="files" src="'+src+'" width="100%" height="100%"></iframe>';
}
var subsite =
['j2me','asp','net','php','xml','javascript','java','perl-cgi','databaze','analyzy'];
var site =
"http://interval.cz/vyvoj-aplikaci/";
function randWWW() { return site+subsite[parseInt(10*Math.random())] }
function inic() {
inpArea=document.getElementById('vstup');
inpArea.focus(); inpArea.select();
infArea=top.document.getElementById('info');
infArea.value=infoHTML;
}
</script>
</HEAD><BODY onload="inic()">
<div class="tst">
<pre><h4>
TESTER KÓDU: CÍL = změnit obsah iframe id=name="files". Nová adresa = randWWW()
</h4></pre>
<textarea cols=100 rows=2 id="vstup" title="Zadej kód:">src = ".";
top.window.frames["files"].location = src</textarea>
<button id='subb' onclick='eval(inpArea.value)'> PROVEĎ </button>
</div>
<div class="hd"><b>Výsledky (v IE7):</b></div>
<div>-------- OK. ---------
<a href="javascript:newIF_1a(randWWW())">
top.frames["files"].location = src</a>
<p>NIC/Oprávnění odepřena
<a href="javascript:newIF_1b(randWWW())">
top.frames["files"].src= "http://interval.cz"</a>
<p>NIC/Oprávnění odepřena
<a href="javascript:newIF_1b('..')">
top.frames["files"].src = ".."</a>
<p>OK/Přístup byl odepřen
<a href="javascript:newIF_1c(randWWW())">
top.frames["files"].frameElement.src = src</a>
</div>
<div>-------- NIC ---------
<a href="javascript:newIF_2a(randWWW())">
top.document.getElementById("files").location = src</a>
<p>-------- OK. ---------
<a href="javascript:newIF_2b(randWWW())">
top.document.getElementById("files").contentWindow.location = src</a>
<p>-------- OK. ---------
<a href="javascript:newIF_2c(randWWW())">
top.document.getElementById("files").src = src</a>
</div>
<div>-------- OK. ---------
<a href="javascript:newIF_3a(randWWW())">
top.document.getElementById("container").innerHTML = iframeHTML</a>
<p>-------- OK. ---------
<a href="javascript:newIF_3b(randWWW())">
top.document.getElementById("files").parentElement.innerHTML = iframeHTML</a>
</div>
<div>-------- OK. ---------
<a href="javascript:newIF_4(randWWW())">
top.document.getElementById("files").outerHTML = iframeHTML</a>
</div>
<p class="txt">iframeHTML = '<iframe id="files" name="files"
src="'+src+'" width="100%" height="100%"></iframe>' </p>
</BODY></HTML>
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Iframe — založil don_Dominique
Iframe — založil Marty_SVK
Iframe — založil DeathHuman (zapomel jsem
Iframe presmerovani — založil wampec
Iframe openload — založil Zelenac14
Moderátoři diskuze