Avatar billede donh Nybegynder
16. november 2007 - 16:53 Der er 12 kommentarer og
1 løsning

tilføj flash i innerHTML som vises i popup div

Hejsa
Jeg har en popup-div, som skal vise en flashfilm. Derfor er der lavet et openPopup og closePopup funktion. Nu er jeg overhovedet ingen haj til javascript. I funktionen openPopup skal der loades en flash i innerHTML... koden kan ses nedenfor... der hvor et object tag starter... hvis nogen kunne fortælle mig hvordan den flash skal hentes der i innerHTML ville jeg være lykkelig!!.. for lige nu bliver intet vist når popup'en aktiveres...

function openPopup() {
var elem = document.getElementById("popup");
elem.style.display= "block";
document.getElementById("popup").innerHTML = "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' width='460' height='375' id='nattensengel' align='middle'>
<param name='allowScriptAccess' value='sameDomain' />
<param name='movie' value='flash/nattensengel.swf' /><param name='quality' value='high' /><param name='bgcolor' value='#000000' /><embed src='flash/nattensengel.swf' quality='high' bgcolor='#000000' width='460' height='375' name='nattensengel' align='middle' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />
</object>";
}

function closePopup() {
var elem = document.getElementById("popup");
elem.style.display= "none";
document.getElementById("popup").innerHTML = "";
}


På forhånd mange tak!!!
Avatar billede soerenlyn Nybegynder
16. november 2007 - 21:55 #1
I din openPopup åbner du jo ikke en popup? Er det en som du allerede har åben ? Hvis den er åben skal du først have fat i vinduet og derefter div'en. Så hvis du fx kalder winduet popupflash, så når du åbner popup skal du skrive:

var popupflash = window.open(......);

Så når du vil ændre noget gør du:

var elem = popupflash.document.getElementById("popup");

Derefter kan du så ændre innerHTML'en. Dog vil jeg også opfordre dig i din innerHTML-kode til at ændre de yderset " til ', og alle dine ' til " :)
Avatar billede donh Nybegynder
17. november 2007 - 18:02 #2
koden du ser i mit spørgsmål ligger i en js fil, som bliver hentet ind på en html side. som aktiveres af dette her:

<a style="color:#c40e0e" ONMOUSEOVER="openPopup()" ONMOUSEOUT="closePopup()" href="java script:void(0)">se trailer</a>

... hvilket også fungere ubeklageligt. Men af en eller anden grund vil den ikke vise flashen i div'en. har nu prøvet at sætte følgende ind i innerHTML'en i openPopup funktionen:

<object type=application/x-shockwave-flash data=flash/nattensengel.swf width=350px height=350px><param name=nattensengel value=data=flash/nattensengel.swf></object>

Og nu viser den flashen som den skal i firefox og safari, men desværre ikke i IE... ved du hvordan det kan være?!
Avatar billede w13 Novice
17. november 2007 - 18:30 #3
Kunne det ikke muligvis være, fordi du ikke bruger anførselstegn (") eller apostrof (') om attributternes værdier?

<object type="application/x-shockwave-flash" data="flash/nattensengel.swf" width="350px" height="350px"><param name="nattensengel" value="data=flash/nattensengel.swf"></object>
Avatar billede donh Nybegynder
17. november 2007 - 19:14 #4
nej desværre... gør ingen forskel når jeg tilføjer dette. IE vil ikke vise flashen med det object tag!... og hvis jeg benytter dette i stedet:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="460" height="375" id="nattensengel" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="flash/nattensengel.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><embed src="flash/nattensengel.swf" quality="high" bgcolor="#000000" width="460" height="375" name="nattensengel" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

... så bliver popup div'en slet ikke vist!?... af en eller anden mærkelig grund!. så ville være dejligt hvis du eller en anden ved, hvilke ændringer der skal til i dette object tag, for at det kan ses af IE:

<object type="application/x-shockwave-flash" data="flash/nattensengel.swf" width="350px" height="350px"><param name="nattensengel" value="data=flash/nattensengel.swf"></object>
Avatar billede w13 Novice
17. november 2007 - 19:15 #5
Får du ingen javascript-fejl?
Kan vi se et link til din side?
Avatar billede w13 Novice
17. november 2007 - 19:16 #6
Du bør i øvrigt bruge denne kode til at vise flash med:

<object type="application/x-shockwave-flash" data="flash/nattensengel.swf" width="350" height="350">
    <param name="movie" value="flash/nattensengel.swf">
</object>

Det virker fint hos mig. Bemærk også, at jeg ikke skriver "px" i width og height.
Avatar billede donh Nybegynder
17. november 2007 - 19:55 #7
ja oki... nu virker det.... bare ikke inde i popup div'en :o( ... efter flashen er sat ind, kommer den op med nogle fejl i et plugin jeg har til firefox... nu siger den, at closePopup og openPopup ikke er defined alt efter om man tager musen over eller væk fra teksten der aktivere popup div'en... måske nemmere at give et link:

http://www.donh.dk/filmselskab/pistoleros.html

popup aktiveres ved at holde musen over "se trailer" der stå med rødt i højre side.. nu vises den bare ikke efter jeg satte flashen ind som du sidst sagde..

håber du gider hjælpe en sidste gang..
Avatar billede w13 Novice
17. november 2007 - 20:03 #8
Fejlmeddelelsen i IE fortæller præcis, hvor den er gal.

Åbn popupboks.js og ret:

document.getElementById("popup").innerHTML = '<object type="application/x-shockwave-flash" data="flash/nattensengel.swf" width="350" height="350">
    <param name="movie" value="flash/nattensengel.swf">
</object>';

til:

document.getElementById("popup").innerHTML = '<object type="application/x-shockwave-flash" data="flash/nattensengel.swf" width="350" height="350"><param name="movie" value="flash/nattensengel.swf"></object>';

Du må ikke dele en string op over flere linjer.
Avatar billede donh Nybegynder
17. november 2007 - 20:13 #9
aahhh... nice mange tak for hjælpen!!... nu virker det sørme :o) ... nu skal jeg bare lige finde ud af hvordan jeg giver dig points... skulle du så ikke skrive det som svar?.. og ikke en kommentar... sorry.. har ikke brugt stedet her så meget endnu..
Avatar billede w13 Novice
17. november 2007 - 20:17 #10
Jo, der kommer et svar her, nu hvor jeg ved, du fik det til at fungere.
Avatar billede donh Nybegynder
17. november 2007 - 20:19 #11
cool... og mange tak igen!!...
Avatar billede donh Nybegynder
17. november 2007 - 20:19 #12
cool... og mange tak igen :o)
Avatar billede w13 Novice
17. november 2007 - 21:09 #13
Og tak for point! =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester