Avatar billede hansi67 Nybegynder
17. november 2005 - 11:33 Der er 11 kommentarer og
1 løsning

swf-fil ind i <div> vha. Javascript

Hey,

Er det muligt via javascript at loade en swf-fil (flash) ind i et <div> tag?

Jeg har noget kode der ser  nogenlunde sådan her ud:

---- kode start ----
<html>
<head>
    <title>Test af moviebox</title>

<style type="text/css">
div.movieBox
{
    position:absolute;
    left:150px;
    top:100px;
    visibility:hidden;
    z-index:1;
}
</style>

<script type="text/javascript">

    function showMovie()
    {
        document.getElementById('movieBox').width=350
        document.getElementById('movieBox').height=350
        document.getElementById('movieBox').style.visibility="visible"
    }

    function preLoadMovie()
    {
        document.getElementById('movieBox').innerHTML="*** Her vil jeg loade swf-fil ind ***"
    }
</script>

</head>
<body onload="preLoadMovie()">


<img src="click_for_movie.gif" id="clickMovie" onclick="showMovie()" width="35" height="16" border="0" /> for at se movie der fortæller hvordan ...

<div id="movieBox" class="movieBox"></div>

</body>
</html>
---- kode slut ----


Er det i det hele taget muligt at benytte innnerHTML til at loade "kode" ind, f.eks.:
--
document.getElementById('movieBox').innerHTML="<SCRIPT LANGUAGE=JavaScript>var swfName='files/system/email.swf'; *** kode videre her ***"
--


Er det korrekt forstået at "onload" bliver kaldt, efter alt koden i <body> er er loadet ind?
--
<body onload="preLoadMovie()">
--
Avatar billede psykochicken Nybegynder
17. november 2005 - 13:42 #1
prøv med:
  document.getElementById('movieBox').innerHTML='<EMBED
  pluginspage="http://www.macromedia.com/shockwave/download/index.cgi? P1_Prod_Version=ShockwaveFlash" src="files/system/email.swf" type="application/x-shockwave-flash" QUALITY="best" swLiveConnect="true">';


eller vha. iframe:
a.innerHTML="<iframe src=files/system/email.swf width=350px height=350px></iframe>

/psc
Avatar billede psykochicken Nybegynder
17. november 2005 - 13:44 #2
og det er selvfølgelig:
eller vha. iframe:
var a = document.getElementById('movieBox');
a.innerHTML="<iframe src=files/system/email.swf width=350px height=350px></iframe>
Avatar billede roenving Novice
17. november 2005 - 13:49 #3
-- men skal embed-tagget ikke lukkes, og den sidste tekststreng afsluttes ?o]

-- og embed-tagget er vel en forældet måde at bruge, er object-tagget ikke bedre (http://blooberry.com/indexdot/html/tagpages/e/embed.htm og http://blooberry.com/indexdot/html/tagpages/o/object.htm ?-)
Avatar billede hansi67 Nybegynder
17. november 2005 - 14:20 #4
Tak for jeres svar..

mit arbjeder tillader mig desværre ikke at kikke på dette problem mere idag, jeg vender tilbage imorgen :/ hvor jeg tester jeres svar.

Hvad med dette spørgsmål:
"Er det korrekt forstået at "onload" bliver kaldt, efter alt koden i <body> er er loadet ind?"
Avatar billede psykochicken Nybegynder
17. november 2005 - 22:05 #5
>> ...men roenving, der er så frygteligt mange knapper på disse nymodens tastaturer, så jeg bliver helt forvirret ;o)

>> hansi67 her er et par "" og et par ekstra """ hvis jeg skulle glemme det fremover.

og roenving har jo ret (hvilket han næsten altid har) mht. object-tagget.
Så kunne det være noget i stil med:
document.getElementById('movieBox').innerHTML='<object type="application/x-shockwave-flash" data="files/system/email.swf " width="350px" height="350px"><param name="movie" value="files/system/email.swf "><\/object>';

/psc
Avatar billede hansi67 Nybegynder
18. november 2005 - 12:04 #6
Nå, jeg fik det til at virke ved at skrive koden sådan her:
--
.innerHTML="<object type='application/x-shockwave-flash data=files/system/email.swf' width='350px' height='350px'><param name='movie' value='files/system/email.swf'></object>"

eller

.innerHTML="<object type=application/x-shockwave-flash data=files/system/email.swf width=350px height=350px><param name=movie value=files/system/email.swf></object>"
--


Der kan IKKE benyttet """ inde i strengen a la sådan her:
--
innerHTML='<object type="application/x-shockwave-flash" data="files/system/email.swf" width="350px" height="350px"><param name="movie" value="files/system/email.swf "><\/object>';
--


Så langt så godt (takker), men er der en der ved om det er korrekt at  onload  først bliver kaldt efter at alt indholdet i <body> er loaded ind?
--
<body onload="preLoadMovie()">
--
Avatar billede psykochicken Nybegynder
18. november 2005 - 17:17 #7
jo, hvis du gør det sådan virker det også:
<script type="text/javascript">
function showMovie() {
  var a = document.getElementById('movieBox');
  a.width=350
  a.height=350
  a.style.visibility="visible"
}
function preloadMovie(){
  document.getElementById('movieBox').innerHTML='<object type="application/x-shockwave-flash" data="files/system/email.swf " width="350px" height="350px"><param name="movie" value="files/system/email.swf "><\/object>';
}
</script>
</head>
<body onload="preloadMovie()">
  <img src="click_for_movie.gif" alt="show movie" style="cursor:pointer;" onclick="showMovie()">
  <div id="movieBox"></div>
</body>

vedr. preload - læs evt jakoba´s kommentarer til http://www.eksperten.dk/spm/113779.
Avatar billede hansi67 Nybegynder
20. november 2005 - 11:43 #8
okey, thx

Points?  ..huh :)
Avatar billede psykochicken Nybegynder
20. november 2005 - 15:41 #9
oki, men behold de fleste point selv, eller giv nogen til roenving ;o)
Avatar billede hansi67 Nybegynder
21. november 2005 - 09:20 #10
hmm.. det ved jeg ikke lige hvordan man gør.
Men jeg deler dem da gerne imellem jer, hvis mr roenving kommer med et svar :)
Avatar billede roenving Novice
21. november 2005 - 13:31 #11
Næh tak, det var jo også kun nogle krøller, jeg tilføjede !-)
Avatar billede psykochicken Nybegynder
21. november 2005 - 16:16 #12
>> hansi67 - så kan du hente lidt point retur her http://exp.dk/spm/666235.

/psc
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