Avatar billede Slettet bruger
21. december 2005 - 19:15 Der er 24 kommentarer og
1 løsning

Ændre dette script til en "onClick"-action?

Hejsa.

Jeg overvejer at bruge dette script - men det skal bare ændres lidt, så det passer til mig.
Jeg har brug for, at hver gang brugeren klikker 1 gang med musen, skal scriptet aktivere en .wav-fil (som kun varer 3 sek.).
Og det skal ikke køre i loop.
Og det skal også kunne valideres via W3C til xhtml 1.1

Her er org. scriptet:
<SCRIPT LANGUAGE="JavaScript">
<!-- Original:  Kipp W. Shinabarger (kipps@bigfoot.com) -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!--  Begin
var MSIE=navigator.userAgent.indexOf("MSIE");
var NETS=navigator.userAgent.indexOf("Netscape");
var OPER=navigator.userAgent.indexOf("Opera");
if((MSIE>-1) || (OPER>-1)) {
document.write("<BGSOUND SRC=sound.mid LOOP=INFINITE>");
} else {
document.write("<EMBED SRC=sound.mid AUTOSTART=TRUE ");
document.write("HIDDEN=true VOLUME=100 LOOP=TRUE>");
}
// End -->
</SCRIPT>

Hvem er supermand til at kunne klare den lille opgave?
Avatar billede thesurfer Nybegynder
21. december 2005 - 19:19 #1
<script type="text/JavaScript" languag="JavaScript">
function minfunkion()
{

<!-- Original:  Kipp W. Shinabarger (kipps@bigfoot.com) -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!--  Begin
var MSIE=navigator.userAgent.indexOf("MSIE");
var NETS=navigator.userAgent.indexOf("Netscape");
var OPER=navigator.userAgent.indexOf("Opera");
if((MSIE>-1) || (OPER>-1)) {
document.write("<BGSOUND SRC=sound.mid LOOP=INFINITE>");
} else {
document.write("<EMBED SRC=sound.mid AUTOSTART=TRUE ");
document.write("HIDDEN=true VOLUME=100 LOOP=TRUE>");
}
// End -->

}
</script>

<... onclick="minfunktion()" ... >

/theSurfer
Avatar billede thesurfer Nybegynder
21. december 2005 - 19:20 #2
Der skulle ha' stået (manglede et "e" i "language"):

<script type="text/JavaScript" language="JavaScript">
function minfunkion()
{

<!-- Original:  Kipp W. Shinabarger (kipps@bigfoot.com) -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!--  Begin
var MSIE=navigator.userAgent.indexOf("MSIE");
var NETS=navigator.userAgent.indexOf("Netscape");
var OPER=navigator.userAgent.indexOf("Opera");
if((MSIE>-1) || (OPER>-1)) {
document.write("<BGSOUND SRC=sound.mid LOOP=INFINITE>");
} else {
document.write("<EMBED SRC=sound.mid AUTOSTART=TRUE ");
document.write("HIDDEN=true VOLUME=100 LOOP=TRUE>");
}
// End -->

}
</script>

<... onclick="minfunktion()" ... >


Det skal lige siges, at language="JavaScript" er det gamle.. man er gået over til at bruge type="text/JavaScript" ..

/theSurfer
Avatar billede thesurfer Nybegynder
21. december 2005 - 19:22 #3
60 points er for meget..
Som du selv siger, er det en lille opgave..

Hold dig til 15-30-60 points..
Let: 15 points

Læg selv et svar, og brug "Avanceret pointsfordeling", til at give mig 15 og dig selv 45 points..

/theSurfer
Avatar billede thesurfer Nybegynder
21. december 2005 - 19:26 #4
Avatar billede Slettet bruger
21. december 2005 - 19:42 #5
Hey!

Det var dælemig hurtigt! :-) Og det virker også helt perfekt! Tak!

Lige et hurtigt extra sp.:
Grunden til at jeg bruger dette script er, at det fungerer med de mest brugte browsere - men der mangler desværre Firefox. Kan man flette en Firefox "navigator.userAgent" ind her:
var MSIE=navigator.userAgent.indexOf("MSIE");
var NETS=navigator.userAgent.indexOf("Netscape");
var OPER=navigator.userAgent.indexOf("Opera");
Avatar billede Slettet bruger
21. december 2005 - 19:44 #6
Det er helt OK med de points - jeg har nemlig lagt et extra sp. til dig.  ;-)
Avatar billede Slettet bruger
21. december 2005 - 19:47 #7
...og jepper, jeg har tidligere læst de 2 artikler fra <olebole>. Fint nok, men jeg holder mig dog alligevel til xhtml - for både at tage en mere glidende overgang til xml senere, og også mht. fremtidig programmering til mobilos. Så jeg er bare langsomt begyndt at gå ud af den vej, på den måde. :-)
Avatar billede thesurfer Nybegynder
21. december 2005 - 19:53 #8
Ja, du indsætter bare endnu en linie.. f.eks.:

var FFOX=navigator.userAgent.indexOf("FireFox");

Men du skal vide, hvad useragent indeholder, når det er FireFox.. det er muligvis "FireFox"..

Og så skal du finde ud af, hvilken metode FireFox understøtter.. BGSOUND eller EMBED..

Så indsætter du bare " || FFOX>-1", hvis FF bruger BGSOUND..

/theSurfer
Avatar billede thesurfer Nybegynder
21. december 2005 - 19:56 #9
Du skal også fjerne "LOOP=INFINITE" og "LOOP=TRUE" :-)
(jeg havde ikke læst dit spm ordentligt)

/theSurfer
Avatar billede Slettet bruger
22. december 2005 - 00:53 #10
Øv, jeg kan ikke få det til at virke med FF-browseren... her er hvad jeg prøver med:

<div onclick="minfunktion()">
<script type="text/JavaScript" language="JavaScript">
function minfunkion()
{
<!-- Original:  Kipp W. Shinabarger (kipps@bigfoot.com) -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!--  Begin
var MSIE=navigator.userAgent.indexOf("MSIE");
var NETS=navigator.userAgent.indexOf("Netscape");
var OPER=navigator.userAgent.indexOf("Opera");
var FFOX=navigator.userAgent.indexOf("Mozilla");
if((MSIE>-1) || (OPER>-1) || (FFOX>-1)) {
document.write("<BGSOUND SRC="lyd/klik.wav">");
} else {
document.write("<EMBED SRC="lyd/klik.wav" AUTOSTART="TRUE" ");
document.write("HIDDEN="true" VOLUME="100">");
}
// End -->
}
</script>

Og her har jeg fundet lidt guf om FF-browseren (tror jeg nok):
http://gemal.dk/browserspy/basic.html

Kan du venligst hjælpe mig med den sidste detalje?
Avatar billede Slettet bruger
22. december 2005 - 00:55 #11
Det virker fint med IE og Opera. Netscape har jeg ikke prøvet med.
Nu mangler bare, at det også kan fungere med Firefox...
Avatar billede Slettet bruger
22. december 2005 - 00:58 #12
Selve lydfilen kan downloades herfra: http://www.extend.dk/klik.wav
Avatar billede thesurfer Nybegynder
22. december 2005 - 10:48 #13
Det er da klart, man :-)
Du siger jo, at den skal hente filen fra mappen "lyd": SRC="lyd/klik.wav"

Hvis filen ligger sammen med HTML filen, skal det bare være: SRC="klik.wav"

Og det er begge steder.. både med BGSOUND og EMBED..

/theSurfer
Avatar billede Slettet bruger
22. december 2005 - 11:31 #14
Hey igen! :-)

Problemet er det samme, uanset hvilken mappe lyd-filen ligger i:
Det virker med IE og Opera, men ikke med Firefox...

Der er umiddelbart 4 steder, hvor fejlen kan ligge henne (tror jeg):
A:  Jeg aner ikke, hvilken metode FireFox understøtter: BGSOUND eller EMBED.
B:  Dette her: if((MSIE>-1) || (OPER>-1) || (FFOX>-1)) {
eller dette her: if((MSIE>-1) || (OPER>-1)) {
C:  navigator.userAgent: Mozilla?
D:  Hjælper dette link til opklaringen: http://gemal.dk/browserspy/basic.html
Avatar billede Slettet bruger
22. december 2005 - 11:35 #15
PS: Linket skal selvfølgelig ses i en Firefox-browser.  ;-)
Avatar billede thesurfer Nybegynder
22. december 2005 - 11:42 #16
Hehe.. når jeg går ind på http://gemal.dk/browserspy/basic.html med min FireFox, viser den bare tomme felter, i stedet for værdierne.. :-)

Tag du ikke tage et screenshot, eller lige skrive hvad der står uden for "UserAgent"..?

/theSurfer
Avatar billede thesurfer Nybegynder
22. december 2005 - 11:46 #17
Hvordan dælen kan det virke, når du har fejl i scriptet..? :-)

Jeg har først lagt mærke til det nu..

Du bruger gåseøjne alle steder:
document.write("<BGSOUND SRC="lyd/klik.wav">");

og

document.write("<EMBED SRC="lyd/klik.wav" AUTOSTART="TRUE" ");
document.write("HIDDEN="true" VOLUME="100">");

Det må man ikke, da de andre gåseøjne afslutter strengen..

Det skal være:

document.write('<BGSOUND SRC="lyd/klik.wav">');
} else {
document.write('<EMBED SRC="lyd/klik.wav" AUTOSTART="TRUE" ');
document.write('HIDDEN="true" VOLUME="100">');
}

/theSurfer
Avatar billede Slettet bruger
22. december 2005 - 11:58 #18
Ok, den ER fixet nu.
Jeg troede at det var en af den slags fejl, som sker når det går lidt for stærkt. Derfor satte jeg selv " ind på de steder. Jeg har nemlig snart prøvet 100 forskellige måder, for at se om jeg kunne "ramme rigtigt" og få Firefox til at afspille lydfilen.

Men jo, det virker altså på begge måder i både IE og Opera. Skal jeg uploade et eksempel?
Avatar billede thesurfer Nybegynder
22. december 2005 - 11:59 #19
Sådan skal det være:

var MSIE=navigator.userAgent.indexOf("MSIE");
var NETS=navigator.userAgent.indexOf("Netscape");
var OPER=navigator.userAgent.indexOf("Opera");
var FFOX=navigator.userAgent.indexOf("Firefox");

if( (MSIE>-1) || (OPER>-1) || (FFOX == -1) ) {

    document.write('<BGSOUND SRC="klik.wav">');
} else {
    document.write('<EMBED SRC="klik.wav" AUTOSTART="TRUE" ');
    document.write('HIDDEN="true" VOLUME="100">');
}

/theSurfer
Avatar billede Slettet bruger
22. december 2005 - 12:00 #20
Et screenshot er på vej. :-)
Avatar billede thesurfer Nybegynder
22. december 2005 - 12:02 #21
User Agents:

Opera:
Opera/8.51 (Windows NT 5.1; U; en)

Internet Explorer:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; FDM)

FireFox:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7

/theSurfer
Avatar billede Slettet bruger
22. december 2005 - 12:23 #22
Avatar billede Slettet bruger
22. december 2005 - 12:28 #23
...men der sker også noget andet med FF end med de andre browsere: Den åbner Windows Media player for at kunne afspille lydfilen, når man aflæser lydfilen direkte i browseren (som fx. ved at klikke på dette link: http://extend.dk/klik.wav ). Det gør de andre browsere ikke, de kan godt afspille lydfilen direkte i browseren.
Kan det være en afgørende forskel?
Avatar billede thesurfer Nybegynder
23. december 2005 - 13:54 #24
Ang " http://extend.dk/test2.html ":
Du kalder jo ikke funktionen med onclick="minfunktion()" ?

Ang "åbne vs afspil":
Brugeren kan indstille browseren til f.eks. afspille filen direkte i browseren. Men han/hun kan også indstille browseren, så den f.eks. åbner med et valgt program, eller poppe "save"-dialogboksen op. Det er noget brugeren selv bestemmer.

/theSurfer
Avatar billede Slettet bruger
23. december 2005 - 16:27 #25
Hey igen.

Jo, kalde-funktionen var der. Men jeg ændrede det senere, fordi jeg selv prøvede videre med andre muligeder.

Men nu skal du høre her:
Det er ikke fordi at hele verden bryder sammen, hvis FF ike kan afspille lydfilen. Så for at holde en vis fornuftig balance i dette her, er det vist rimeligt at sige, at det må være godt nok som det er.

Hvis jeg en eller anden dag falder over et script eller en metode til at afspille en lydfil i FF, skal jeg nok poste det herinde til dig.

Men jeg takker rigtigt mange gange for din store ildhu, ihærdighed, tid, osv.!!! :-)
Og ønsker dig også en god jul og et bragende godt nytår! :-)

Hejsa igen: Flemming
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