Sascha Bahl: Zugriff aus einem Object

Beitrag lesen

Hallo,

Jetzt habe ich aber eine PHP-Datei, die HTML/JavaScript ausgibt und diese durch einen <object>-Tag eingebunden. Dort funktioniert die Verfahrensweise top.frame.function(), top.function(), top.varible oder nur function() nicht über den Internet Explorer. Der Firefox hat keine Probleme damit....

Es wird also vom PHP-Skript kein SVG-Code erzeugt, sondern HTML-Code als <object> eingebunden? Dann verwende doch besser einen <iframe>.

Der Zugriff von SVG im <object> auf sein top-Document funktioniert auch im IE und so hatte ich das verstanden:

Minimaler Test-Case:

bla.htm:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test by TM 11/05</title>
<script type="text/javascript">
var x=123;
</script>
</head>
<body>
<object data="bla.svg" type="image/svg+xml"></object>
</body>
</html>


>   
>   
> bla.svg:  
>   
> ~~~xml
  

> <?xml version="1.0"?>  
> <svg onload="alert(top.x)"><!-- gibt 123 aus -->  
> <circle cx="100" cy="100" r="20" fill="#F00"/>  
> </svg>

MfG, Thomas

Hallo, Thomas!

Ja, das obige Beispiel ist schon sehr gut, ausser, dass ich in diesem Fall keine SVG-Datei einbinde, sondern eine PHP-Datei die HTML/JavaScript-Code ausgibt. Anders wie per Object-Tag kann ich über iFrames auf das ganze DOM zugreifen. Der Haken dabei: Das iFrame soll mein SVG überlappen, da es ein Menü darstellt. Wenn ich aber das SVG anklicke, liegt das iFrame darunter und ist nicht mehr in den Vordergrund zu bekommen. Das ist bei per Object- oder Embed-Tag eingebundenen Code anders. Nur das ich zur Zeit keine Ausgabe über embed eingebundenen PHP hinbekomme. Vielleicht mache ich was falsch.
Der Firefox reagiert da ganz anders. Mit dem habe ich eigentlich keine Probleme. Mein Ziel ist es aber Browserunabhängingen Code zu schreiben...

Gruß

Sascha Bahl