zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden src - Attribut in Flashelement ändern.

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 24.04.2007, 11:20
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 26.11.2005
Beiträge: 19
MisterDither befindet sich auf einem aufstrebenden Ast
Standard src - Attribut in Flashelement ändern.

Hallo,

Ich arbeite derzeit an einem Webinterface speziell für Mozilla Firefox. Nun habe ich dort ein Flashdokument mittels embed eingegliedet, was so im Quelltext aussieht

Code:
<embed id="flash" src="img/test.swf" [...] type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"></embed>
Nun möchte ich, dass das embed-Element bei einem bestimmten Event ein anderes Flashdokument lädt. Mein pragmatischer Versuch mit

Code:
document.getElementById('flash').src = "img/anderesFlash.swf";
funktioniert nicht. Hat da jemand eine funktionierende Lösung?

Gruß
Christian
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 24.04.2007, 12:58
Neuer Benutzer
neuer user
 
Registriert seit: 14.01.2006
Beiträge: 21
code_pilot befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MisterDither Beitrag anzeigen
Hat da jemand eine funktionierende Lösung?
Laut JavaScript / Objektreferenz / embeds
ist src eine Read-Only Eigenschaft, die also nicht änderbar ist.

Was ich aber Vorschlagen würde ist folgendes:

Code:
<div id="flash"></div>

<script type="text/javascript">
<!--
	function update_src( src )
	{
		var strHtmlCode = '<embed src="' + src + '" [...] type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"></embed>';
		
		document.getElementById( "flash" ).innerHTML = strHtmlCode;
	}
-->

	update_src( "url1.swf" );
</script>
(hab ich aber nicht getestet!)

Kannst das aber mal ausprobieren!

Gruß
code_pilot

Edit: Huch da war noch ein doofer Bug drin
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 24.04.2007, 15:53
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 26.11.2005
Beiträge: 19
MisterDither befindet sich auf einem aufstrebenden Ast
Standard

Danke für deine Antwort.

Also bei mir funktioniert dein Ansatz leider nicht. Ich dachte zuerst, dass es mit innerHTML nicht zurecht kommt, weswegen ich den "offiziellen Weg" mal gegangen bin. Die Funktion sieht dann so aus

Code:
function changeSrc(str) {

		document.getElementById('flash').removeChild(document.getElementById('flash-embed'));
		
		var newFlashElement = document.createElement('embed');
		newFlashElement.setAttribute('id', 'flash-embed');
		newFlashElement.setAttribute('src', 'img/' + str);
		newFlashElement.setAttribute('quality', 'high');
		newFlashElement.setAttribute('scale', 'exactfit');
		newFlashElement.setAttribute('menu', 'false');
		newFlashElement.setAttribute('swLiveConnect', 'false');
		newFlashElement.setAttribute('type', 'application/x-shockwave-flash');
		newFlashElement.setAttribute('pluginpage', 'http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash');

		document.getElementById('flash').appendChild(newFlashElement);
	}
Sowohl diese als auch die Variante mit innerHTML produzieren das Gleiche: Das alte Element verschwindet, es wird ganz kurz grau und dann erscheint nix.

Kann es sein, dass es gar nicht möglich embed-Elemente nachträglich in die DOM einzugliedern?

EDIT: Das neue embed wird in die DOM eingegliedert, wie es an Hand des DOM Inspectors in Firefox sehen kann. Es erscheint einfach nicht ...

Geändert von MisterDither (24.04.2007 um 15:57 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 24.04.2007, 16:16
Neuer Benutzer
neuer user
 
Registriert seit: 14.01.2006
Beiträge: 21
code_pilot befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MisterDither Beitrag anzeigen
Also bei mir funktioniert dein Ansatz leider nicht. Ich dachte zuerst, dass es mit innerHTML nicht zurecht kommt, weswegen ich den "offiziellen Weg" mal gegangen bin. Die Funktion sieht dann so aus
Hmm naja innerHTML ist aber nichts inoffizielles, hatte damit bisher nie Probleme.

Und das hier funktioniert bei mir ohne Probleme, ich kann jederzeit zwischen den Flashes wechseln:

Code:
<html>
<head>
	<title></title>
</head>
<body>

<div id="flash">
	<!-- will be filled -->
</div>

<script type="text/javascript">
<!--

function update_swf( src )
{
	document.getElementById( "flash" ).innerHTML = '<embed src="' + src + '" quality="high" scale="exactfit" menu="false" bgcolor="#000080" width="600" height="400" swLiveConnect="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" />';
}



-->
</script>

<a href="#" onclick="update_swf( 'http://de.selfhtml.org/html/multimedia/anzeige/nibbles.swf' );">Nibbles starten</a>
<a href="#" onclick="update_swf( 'http://www.ballz.de/toons/eyeballz1.swf' );">Was anderes...</a>

</body>
</html>
Gruß
code_pilot

PS: Das obige Beispiel klappt nicht im IE, ich denke aber das liegt daran daß die SWFs auf anderen Servern liegen oder so...
Mit Zitat antworten
  #5 (permalink)  
Alt 24.04.2007, 17:02
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 26.11.2005
Beiträge: 19
MisterDither befindet sich auf einem aufstrebenden Ast
Standard

Bei mir spackte eine swf-Datei zu sehr rum. Als ich diese dann mit einer anderen ersetzte ging es.

Zitat:
Hmm naja innerHTML ist aber nichts inoffizielles, hatte damit bisher nie Probleme.
Soweit ich mein AJAX-Buch richtig gelesen habe, unterstüzen zwar innerHTML sämtliche Browser, hat aber nie zur Spezifikation gehört. Aber es ist eigentlich egal ob man innerHTML nimmt oder nicht. Nun genug geklugscheißert.

Danke für deine Hilfe.

Geändert von MisterDither (24.04.2007 um 17:04 Uhr)
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
verweisschema im src attribut von img sjBlack (X)HTML 5 23.06.2008 17:01
Attribut top per JS ändern Camelrider Javascript & Ajax 2 08.04.2008 11:54
Imagemap Zugriff bei einer Gallery Sarah14 Javascript & Ajax 3 12.11.2007 15:06
Bildergalerie preload und Co. Sarah14 Javascript & Ajax 12 05.11.2007 10:10
XHTML 1.0 Strict - Ersatz für Attribut "name" ?? Tigereye (X)HTML 16 19.10.2005 12:07


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:38 Uhr.