Avatar billede dj-sejler Praktikant
12. marts 2004 - 23:16 Der er 6 kommentarer og
2 løsninger

XHTML strict kodkendt baggrundslyd

Hej...

Jeg har lavet (næsten) min side godkendt til XHTML 1.0 strict,
men jeg kan ikke finde ud af at lave baggrundslyden godkendt.

Jeg plejer at bruge:
<bgsound src="lyd.mp3" />

Men den går i hvert fald ikke
Avatar billede bearhugx Nybegynder
12. marts 2004 - 23:50 #1
Noget siger mig at du skal embedde det via et Object tag... Kigger lige
Avatar billede bearhugx Nybegynder
13. marts 2004 - 00:15 #2
Ok... her er noget virkende kode... Det er XHTML kompatibelt - bemærk dog at der er et stort IE hack med, da IE ikke har tænkt sig at følge standarden for hvordan Object-tag skal behandles....

Derfor bliver man nød til at loade filen ind som et ActiveX objekt istedet for (med alle de vidunderlige ting, det medfører)

I mit eksempel bliver en fil ved navn Grace.mp3 afspillet... Du skal bare indsætte filnavnet på din ønskede fil istedet :-)

<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
  <body>
    <object data="grace.mp3" type="audio/x-mpeg">
      <!-- bruges, da IE åbenbart ikke fatter Object Tag -- SKOD BROWSER -->
      <object id="mediaPlayer"
        type="application/x-oleobject"
        classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"
        codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"
        standby="Loading Microsoft Windows Media Player components..."
      >
        <param name="fileName" value="grace.mp3" />
        <param name="animationatStart" value="false" />
        <param name="transparentatStart" value="true" />
        <param name="autoStart" value="true" />
        <param name="showControls" value="false" />
      </object>
      <!-- SLUT på IE HACK -->
    </object>
  </body>
</html>


/Søren Munk Skrøder
Avatar billede dj-sejler Praktikant
13. marts 2004 - 00:30 #3
jeg får en besked om at jeg ikke kan have et object inde i et object
Avatar billede bearhugx Nybegynder
13. marts 2004 - 01:36 #4
følgende kode går udenmærket igennem W3Cs validator....

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
  <head>
    <title>Background Sound in XHTML</title>
  </head>
  <body>
    <div>
      <object data="grace.mp3" type="audio/x-mpeg">
        <!-- bruges, da IE åbenbart ikke fatter Object Tag. SKOD BROWSER -->
        <object id="mediaPlayer"
          type="application/x-oleobject"
          classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"
          codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"
          standby="Loading Microsoft Windows Media Player components..."
        >
          <param name="fileName" value="grace.mp3" />
          <param name="animationatStart" value="false" />
          <param name="transparentatStart" value="true" />
          <param name="autoStart" value="true" />
          <param name="showControls" value="false" />
        </object>
        <!-- SLUT på IE HACK -->
      </object>
    </div>
  </body>
</html>

og jo-- man kan sagtens have objects inden i objects... Det er en fail-safe struktur, som selv bliver brugt i W3Cs beskrivelse af OBJECT tag'et -- Hvis UAen (User Agent == Browseren) ikke kan vise objektet, kigges der i indholdet af objektet (altså den tekst, som er mellem <object> og </object> for at finde ud af, hvad den så skal gøre...


En meget brugt konstruktion er
<object data="movie.mpg" type="video/mpeg">
  <object data="animeretGif.gif" type="image/gif">
    Da din browser hverken kan se video, eller en animeret gif-fil, får du i stedet vist denne fejlmeddelse...
  </object>
</object>

Hvis UAen kan vise mpeg-film, vises den - ellers forsøges den animerede gif-fil... Hvis den hellerikke virker, så vises fejlmeddelsen...
/Søren
Avatar billede bearhugx Nybegynder
13. marts 2004 - 01:43 #5
der er tre ændringer til ovenstående kode - 2 af dem er dog kun kosmetiske...

1) der er tilføjet en XML prolog for at få 8859-1 encoding med

2) " -- " er fjernet fra kommentaren... Åbenbart er W3C's validator ikke så glad for to efterfølgende dash "--". Det kan dog være fordi at den så vil forvente en afslutning af kommentaren (slut-markør er --> for en html-kommentar) ... syntaktisk burde det ikke være noget problem med -- i en kommentar -- men for at "tilfredsstille" validatoren (og fordi jeg simpelthen elsker skærmbilledet "This Page Is Valid XHTML 1.0 Strict!") så foretog jeg denne _kosmetiske_ ændring til koden...

og så lige en strukturel ændring til koden

3) hele OBJECT tag'et er indlagt i et DIV tag, da et objekt skal holdes i en containing block pga. de strukturelle strammere regler i XHTML
Avatar billede bearhugx Nybegynder
13. marts 2004 - 01:45 #6
og måske skulle sætningen så være
  "der er tre ændringer _I_ den overstående kode"
og ikke
  "der er tre ændringer _TIL_ den overstående kode"

Koden @ 01:36:39 er den korrekte og gyldige. Kommentaren @ 01:43:14 er kun en forklaring af koden - og ikke en rettelse til den (som det kunne forstås som)...
Avatar billede Slettet bruger
14. marts 2004 - 23:22 #7
bearhuqx:

Det kan godt være, at syntaksen for en kommentar er blevet ændret, men tidligere, da HTML var SGML-baseret var reglen om kommentarer noget kompliceret. Her er en flok eksempler på henholdsvis gyldige og ugyldige kommentarer. Gyldige først:

<!-- Hej -->
<!-- Hej -- -- Hej -->
<!-- Hej - Hej - Hej -->
<!------ Hej -->

Og ugyldige:

<!-- Hej -- Hej -->
<!--- Hej --->
<!-- -- Hej -- -->

Forklaringen:
To minusser starter kommentaren, og to minusser stopper kommentaren, men det er tilladt at starte kommentaren igen - Der må ikke være andet en whitespace-tegn på steder, hvor kommentaren er stoppet.

Desuden er det forskelligt (og nærmest uforudsigeligt), hvodan forskellige browsere reagerer på de mere eksotiske varianter, så den sikreste løsning er at holde sig til den normale udgave.
Avatar billede Slettet bruger
14. marts 2004 - 23:42 #8
Og her er lige en anden kilde, som er lidt mere "officiel" end mig. NB! Den er fra HTML 3.2:
http://www.htmlhelp.com/reference/wilbur/misc/comment.html

Og den helt officielle, når vi snakker xhtml, som jo er xml. (Bemærk, at reglen tilsyneladende er strammet op - måske af hensyn til forvirrede browsere.)
http://www.w3.org/TR/2004/REC-xml-20040204/#sec-comments
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