webForumDet fria alternativet

dynamsik ändrig av iframe med javascript

JavaScript

3 svar · 226 visningar · startad av Ryzzen

Medlem sedan mars 2000267 inlägg
Frågan#1

Vill kunna ändra på innhållet i en fram när jag klickar på en knapp.

kod snutt

<div id="user_admin" style="position:absolute; width:450px; height:400px; text-align: left; padding: 0px; font-size: 8pt; z-index:1; left: 100px; top: 100px; background-color: #EBEBEB; border: 1px solid #000000; visibility: hidden">
<img name="board" src="images/disk_win.gif" width="450" height="20" border="0" usemap="#m_admin" alt="">
<map name="m_admin">
<area shape="rect" coords="427,0,450,20" href="javascript:skf_ShowHideLayer('user_admin','hidden');document.all.frame_admin.src='admin/user.ph'" title="Stäng fönstret" alt="Stäng fönstret" >
</map>

<div style="padding: 0px;">
<iframe name="frame_admin" id="frame_admin" width="450" height="400" src="admin/user.php">

</iframe>
</div>
</div>

kod snutt slut

Som ni ser så anropar jag en funktion som heter skf_ShowHideLayer när jag klickar inom området för att dölja lagret. Har även kastat in ett commando direkt efter som enligt mig borde ändra på source för iframe'en. Men vad som händer är att en ny sida med texten "admin/user.php" utskriven på.

Vart tänker jag fel.

Medlem sedan aug. 20039 340 inlägg
#2

Till att börja med har "user_admin" visibility satt till hidden, så att den inte syns från början.
Src ändrar för det andra inte adressen till en sida utan adressen till tex en bild i <img> eller ett skript i <script>. Jag rekommenderar window.open istället.

 
<script>
function doStuff(){
	document.getElementById("user_admin").style.visibility = "hidden";
	window.open("admin/user.ph","frame_admin");
}

</script>

<div id="user_admin" style="position:absolute; width:450px; height:400px; text-align: left; padding: 0px; font-size: 8pt; z-index:1; left: 100px; top: 100px; background-color: #EBEBEB; border: 1px solid #000000; visxibility: hidden">
<img name="board" src="images/disk_win.gif" width="450" height="20" border="0" usemap="#m_admin" alt="">
<map name="m_admin">
<area shape="rect" coords="427,0,450,20" href=" javascript:doStuff();" title="Stäng fönstret" alt="Stäng fönstret" >
</map>

<div style="padding: 0px;">
<iframe name="frame_admin" id="frame_admin" width="450" height="400" src="admin/user.php">

</iframe>
</div>
</div>
Medlem sedan sep. 20021 655 inlägg
#3

Hur ser skf_ShowHideLayer() ut?
I övrigt ser jag inget som ser konstigt ut.

nitro2k01
Du har nog läst fel, för Ryzzen vill ändra vilken sida som visas i iframen (som jag har förstått det), och då passar det utmärkt att ändra src.

Medlem sedan mars 2000267 inlägg
#4
function skf_ShowHideLayer(TheLayer,TheAttrib) {
	if (parseInt(navigator.appVersion) > 3) {
		eval(layerVar + '["' + TheLayer + '"]' + styleVar + '.visibility = "' + TheAttrib + '"');
	}
}

dectgap. du har hellt rätt.

löste fet iofs med hård hack nu...

la till en funktion vid namn

function update_iframe(objName, h, w, src)
{
	x = MM_findObj(objName);
	if(x) x.innerHTML='<iframe width="' +w+ '" height="' +h+ '" src="' +src+ '">';
}

och skrev om koden på det här sättet

<div id="user_admin" style="position:absolute; width:450px; height:400px; text-align: left; padding: 0px; font-size: 8pt; z-index:1; left: 100px; top: 100px; background-color: #EBEBEB; border: 1px solid #000000; visibility: hidden">
	<img name="board" src="images/disk_win.gif" width="450" height="20" border="0" usemap="#m_admin" alt="">
	<map name="m_admin">
	<area shape="rect" coords="427,0,450,20" href="javascript:skf_ShowHideLayer('user_admin','hidden');update_iframe('frame_admin', '400', '450', 'admin/user.php');" title="Stäng fönstret" alt="Stäng fönstret" >
	</map>

	<div id="frame_admin" style="padding: 0px;">
	<iframe width="450" height="400" src="admin/user.php">
	
	</iframe>
	</div>
251 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)