Avatar billede mik789 Nybegynder
12. november 2003 - 23:24 Der er 11 kommentarer og
1 løsning

tjekke plugins i IE

Netscape understøtter navigator.plugins så man kan tjekke for en bestemt plugin hos brugeren. Men det gør IE vist ikke. Hvad gør man der?
//mik
Avatar billede olebole Juniormester
14. november 2003 - 19:36 #1
Avatar billede mik789 Nybegynder
15. november 2003 - 09:55 #2
olebole>hmmn, hvorfor reagerer IE6 så ikke på at Windows Media Player her er embeddet i dokumentet:

http://www.musicandmeaning.net/issues/2003_1/multimedia/player_test.html

- hvormod Netscape gør.

Bort set fra det, er det ikke muligheden for at tjekke plugins i dokumentet jeg skal bruge men muligheden for at tjekke plugins i browseren. Hvis man i dette tilfælde skal embedde en player afhængig af om folk har WMP eller RealOne, hvordan gør man så det i IE?
Avatar billede mik789 Nybegynder
15. november 2003 - 10:02 #3
olebole> noget andet er så at IE og NS reagerer forskelligt på muligheden af at skifte <object> kode ud med innnerHTML (se den første del af koden på dokumentet) og på den måde skifte mellem forskellige musikstykker uden at skulle loade et nyt vindue. IE har det fint med dette, NN vil ikke så gerne.
Avatar billede olebole Juniormester
15. november 2003 - 11:53 #4
Jeg bruger stort set aldrig selv lyd på nettet så jeg checker heller ikke for afspillere. Jeg har været lydtekniker i over 20 år, så jeg har lavet det lyd, jeg skal have lavet ... det skal der være overmåde god grund til, at jeg roder med på WWW  :)

At du kan skifte indholdet af et object med innerHTML, tror jeg, du skal regne som lidt af et besynderligt uheld. Det er en ualmindelig 'beskidt' fremgangsmåde - og fuldstændig meningsløs.
Jeg kunne måske forstå, hvis du kunne skifte object'et ud med outerHTML (som i øvrigt er proprietær MS), men innerHTML er absolut en fejl. Det er andre browsere formodentlig for velkonstruerede til at ville være med til - og meget kan man kalde IE ... men ikke lige det  :)
/mvh
Avatar billede mik789 Nybegynder
15. november 2003 - 14:43 #5
olebole> jeg ved ikke helt hvorfor det er 'beskidt' at skifte indhold af et object vha innerHTML. ??? Jeg har forsøgt det her bare fordi jeg forestillede mig at det ville være hurtigere at loade det ny object fremfor at loade objectet i sit eget vindue (som vel er det alternativ der er 'korrekt'). Hvilke andrealternativer er der?
Avatar billede olebole Juniormester
15. november 2003 - 15:09 #6
<object ... blabla ... >
Herinde står innerHTML'en
</object>

Så er det vist ikke svært at se det 'beskidte' i at skifte innerHTML med et helt nyt object, vel? Det vil jo resultere i noget:

<object ... blabla ... >
  <object ... blabla ... >
    Herinde står den ny innerHTML
  </object>
</object>

Det er en yderts grim metode, som er typisk for MS/IE  :)
/mvh
Avatar billede olebole Juniormester
15. november 2003 - 15:14 #7
Du skal nok kikke i SDK'en for Media Player. Her er et eksempel på, hvordan du skifter URL'en:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmplay/mmp_sdk/simpleexampleofscriptinginawebpage.asp

/mvh
Avatar billede mik789 Nybegynder
16. november 2003 - 09:19 #8
olebole> helt så beskidt som du fremstiller det, er det nu ikke. Der er ikke tale om at at loade et objekt inde i et allerede loadet objekt, men om at reloade et objekt inde i en omgivende boks - - sådan:

<script type="text/javascript"><!--
function changeContent(id,content) {
  document.getElementById(id).innerHTML=content;
}
var schubert = '<object id="MediaPlayer" width="280" height="143" classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" standby="Loading Microsoft® Windows® Media Player components..." type="application/x-oleobject" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,9,1112"><param name="filename" value="Schubert_op100.mp3"><param name="autoStart" value="true"><param name="showControls" value="true"><param name="ShowStatusBar" value="true"><param name="Autorewind" value="true"><param name="ShowDisplay" value="true"><embed src="Schubert_op100.mp3" width="280" height="143" type="application/x-mplayer2" name="MediaPlayer" autostart="1" showcontrols="1" showstatusbar=1 autorewind="1" showdisplay="1"></embed></object>';
var beethoven = '<object id="MediaPlayer" width="280" height="143" classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" standby="Loading Microsoft® Windows® Media Player components..." type="application/x-oleobject" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,9,1112"><param name="filename" value="Beethoven_op31_3.mp3"><param name="autoStart" value="true"><param name="showControls" value="true"><param name="ShowStatusBar" value="true"><param name="Autorewind" value="true"><param name="ShowDisplay" value="true"><embed src="Beethoven_op31_3.mp3" width="280" height="143" type="application/x-mplayer2" name="MediaPlayer" autostart="1" showcontrols="1" showstatusbar=1 autorewind="1" showdisplay="1"></embed></object>';
//--></script>

  <td id="player"><object id="MediaPlayer" width="280" height="143" classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" standby="Loading Microsoft® Windows® Media Player components..." type="application/x-oleobject" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,9,1112">
      <param name="filename" value="Schubert_op100.mp3">
      <param name="autoStart" value="true">
      <param name="showControls" value="true">
      <param name="ShowStatusBar" value="true">
      <param name="Autorewind" value="true">
      <param name="ShowDisplay" value="true">
      <embed src="Schubert_op100.mp3" width="280" height="143" type="application/x-mplayer2" name="MediaPlayer" autostart="1" showcontrols="1" showstatusbar=1 autorewind="1" showdisplay="1"></embed></object></td>

Det er der vel egentlig ikke noget galt i - eller?

men tak for dit link - det var netop sådan noget jeg ledte efter. Playeren har altså sine egne properties der kan arbejdes med direkte i scriptet uden at gå min omvej. Fint ;-)
//mik
Avatar billede mik789 Nybegynder
16. november 2003 - 09:39 #9
hov, glemte lige at få link'ene med:

<a href="java script:changeContent('player',schubert);">Schubert klavertrio</a>
<a href="java script:changeContent('player',beethoven);">Beethoven klaversonate</a>
Avatar billede mik789 Nybegynder
17. november 2003 - 00:17 #10
mht at skifte URL, brugte jeg instruktionerne på MSDN til koden som er yderst enkel for IE's vedkommende. For Netscape instrueres i brug af <applet> men det fungerer ikkeefter hensigten. Men jeg mangler stadig at finde ud af hvordan jeg tjekker plugins i IE. Hverken navigator.plugins eller document.plugins virker...
Avatar billede mik789 Nybegynder
17. november 2003 - 09:01 #11
olebole> Prøv lige at se her: An ActiveX control can be inserted into a Web page by setting the innerHTML or outerHTML property of an existing element or by calling document.write. The following Microsoft JScript® creates the Windows Media Player control by calling document.write [eks.] - Fra: http://msdn.microsoft.com/ieupdate/activexchanges.asp nederst - Dette dokument beskriver de ændringer i behandlingen af embeddede data der vil være konsekvensen af sagen mellem Microsoft og Eola. Og her anbefales netop javascript løsninger (f.eks. innerHTML) for at undgå den prompt som IE fremover vil vise før embedding. Det samme gør RealOne på: http://www.realnetworks.com/resources/howto/embedded/iechanges/index.html/

//mik
Avatar billede mik789 Nybegynder
21. november 2003 - 09:46 #12
mht det oprindelige sp. så er svaret at man ikke kan tjekke for plugins i IE ved hjælp af java script:

"[Netscape] Navigator has a plugins collection for its navigator object that allows you to iterate through all the plug-ins loaded by the browser. Internet Explorer doesnt support these plug-ins, and the plugins collection will always be empty, so your code will get no usable result." ( http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnproweb/html/buildingcompatiblepage.asp )

Men kan gøre det med VBscript, se evt. http://gemal.dk/browserspy/wm.html og http://gemal.dk/browserspy/real.html som viser hvordan.

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