Javascript/Flash über <iframe>...

axelK

Grünschnabel
Hallo zusammen.

"... ins kalte Wasser gestossen"!

Ich habe leider wenig Ahnung von Javascript und Co., aber ein grundlegendes Interesse, es
zu verstehen, da ich mich beruflich um zwei Webauftritte kümmern kann. Bin eigentlich
Techniker.

Ich habe eine komplette Webpräsenz von einer deutschen Mutter für den spanischen Auftritt
umgebaut. HTML's, Flash-Animationen usw. Seit Anfang der Woche suche ich intensiver nach
einer Problemlösung für Folgendes:

Die Hauptseite wurde mit einem <iframe> für den Main-Content ausgestattet. Über dem
<td><iframe> ist ein <td><img src...> welches ein Bild der Navigation enthält. Fährt
man über das Bild, wird eine Flash-Navigation abgespielt. Das funktioniert soweit auch
alles super, im IE!

Im FF klappen zwar die Buttons der Navigation runter, der Bereich ragt quasi 170px tief
ins/übers <td><iframe>, aber die Buttons sind dann nicht mehr anzusteuern und somit
im FF nicht zu aktivieren und gebrauchen.
Entferne ich das <iframe> aus der darunterliegenden Spalte und setze nichts oder einen
anderen Content rein, funktioniert es. Dann kann der FF die Navigation komplett nutzen.

Für mich hiess das nun, dass es doch mit der Kombination <iframe> und Javascript zu tun
haben muss, da der Bereich für die Flash-Navigation, welcher im CSS als caption2 deklariert
ist, aufgerufen wird.

Hier mal ein paar Code-Schnipsel:

Code:
<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
obj.visibility=v; }
}
//-->
</script>
Ich brauche nicht zu erwähnen, dass ich hier mit DW arbeite. Ich habe in den letzten Tagen
einiges dazu gelesen und wie oft, gehen die Meinungen da ja auseinaner usw.
Hoffe aber, dass das dem Ganzen jetzt keinen Abbruch tut.

Code:
<td width="878" height="40"><img src="gfx/rw/c_m_es.png" width="878" height="40" border="0" onMouseOver="MM_showHideLayers('caption2','','show')"></td>
...
<td height="372" bgcolor="#FFFFFF">
<iframe name="main" style="border:0px" scrolling="auto" frameborder="0" src="content/home_es.html" width="878" height="372"></iframe>
</td>
...
...
<div id="caption2"> 
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="878" height="170" id="rm" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="ani/es/rm-osub.swf" />
<param name="menu" value="true" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<param name="bgcolor" value="#ffffff" />
<embed src="ani/es/rm-osub.swf" menu="true" quality="high" wmode="transparent" bgcolor="#ffffff" width="878" height="170" name="rm" align="middle" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> 
</object>
<script language="JavaScript" type="text/javascript" src="scripts/NoIEActivate.js"></script>
</div>
Navigation + <iframe> + DIV/Flash-Navi
Wofür könnte das NoIEActivate.js sein?

Code:
#caption2    
{
padding-left: 0px;
position: absolute;
top: -122px;
left: -303px;
width: 878px;
height: 170px;
display: block;
visibility: hidden;
}
aus dem eingebetteten CSS


Bei einigen Artikeln hatte ich gefunden, dass "Document.all" veraltet sei. Wenn ich es
aber richtig erkannt habe, wird oben im JavaScript sowohl als auch "getElementById"
verwendet. Also in Ordnung so?!
Wollte man damit Kompatibilität zu älteren Browsern schaffen?

Sind das genug Informationen, um mir ggf. Hilfe zu geben, würde es mich sehr freuen,
wenn hier Jemand seine wertvolle Zeit opfert.

Danke,

Viele Grüße,
Axel
 
Hi,

hast du es schon mal im embed-Element anstelle von wmode="transparent" mit wmode="opaque" versucht?
 
Hallo,

ja, das hatte ich bereits getestet. Dann sieht es so aus, dass der Bereich von
Caption2 quasi aufgedeckt wird, die Buttons aber immer noch nicht animiert sind und
betätigt werden können. Der Teil des <iframe> verschwindet dann in den Hintergrund, wird also überlagert.

Nehme ich hier das <iframe> wieder raus, gehts. Egal ob mit "transparent" oder "opaque".


Noch ein Test zum <iframe>:
habe die Höhe um 20px verringert und <td valign="bottom"> eingestellt, sodass einfach noch mehr Platz
zwischen dem Bild/der Navi und dem <iframe> ist. Der erste Button von der Flash-Navi funktioniert in diesem Moment, aber
der 2. schon nicht mehr - weil dann das <iframe> wieder beginnt/darunter liegt. Hmm?!
 
Zuletzt bearbeitet:
Hallo,

vllt. noch was grundsätzliches zum FF-Problem, dass meine Navi in der Caption2 nicht
angezeigt wird.

Könnte es was mit "includes" zu tun haben? Neben dem Iframe habe ich nun mal die index und home_es.html nach php umgebaut und siehe da, der selbe Effekt.
Die Navigation funktioniert nicht in dem Teil von Caption2, wo dass php includiert wird.

Ich kann aus Unerfahrenheit nicht festlegen, wo denn nun das Problem liegt.
Javascript, FF, Flash,...?!

Grüße
axel
 
Zurück