Gå til innhold

[Løst] Feil jeg ikke skjønner - javascript


Anbefalte innlegg

Beklager for dårlig tittel, men jeg vet ikke noe bedre tittel i dette tilfellet.

 

Jeg skal lage en liten hjelpeside som skal hjelpe megg og koordinere noe som skal vises i et skuespill vi skal ha på skolen, men når jeg testet koden midtveis i programmeringen kom det feilmelding der jeg ikke ventet at det skulle komme feilmelding.

 

Så hva er problemet?

 

 

Foreløpig kode (PS: Denne siden skal kjøre på min egen pc):

<html>
<head>
<title>Program veiviser</title>
<script>
var bredde = screen.width;
var hoyde = screen.height;
var bilde = 0;
document.getElementById("knapp").innerHTML='<img src="Biblioteker\Bilder\svart_bakgrunn.png" width="' . bredde . '" height=10 onclick="nextPicture()>';
function nextPicture() {
bilde = bilde + 1;
if bilde == 1 {
document.getElementById("innhold").innerHTML='<video width="' . bredde . '"height="' . hoyde-10 . '" id="video">Nettleseren din støtter ikke video-taggen</video>';
var video = document.getElementById("video");
video.src="C:\Users\be14059604\Videos\Intro NRK Nyheter.mp4";
}
}
</script>
</head>
<body>
<div id="innhold"></div><br>
<div id="knapp"></div>
</body>
</html>

 

Feilmelding:

SCRIPT1010: Forventet identifikator

teknisk_veiviser.html, linje 8 tegn 114

 

Takker for alle svar.

Lenke til kommentar
Videoannonse
Annonse

Du har veldig mange feil ..

1.

Du kan ikke legge ting inn i <body> (altså din img tag) FØR <body> har blitt lastet.. Altså må scriptet stå etter </body> om du ikke lager en <body onload="start();"> også slenger alt inn i en funksjon.

 

2.

document.getElementById('knapp').innerHTML='<img src="sad.png" width="' + bredde + '" height=10 onclick="nextPicture()">';

Her mangler en "

 

3. Du må bytte ut . med +, siden + brukes til å "legge til" variabler.

 

4. if setningen din må skrives på følgende måte: if (bilde == 1) , med ( og ) rundt.

 

5. document.getElementById("innhold").innerHTML='<video width="' + bredde + '"height="' + (hoyde-10) + '" id="video">Nettleseren din støtter ikke video-taggen</video>';

Her må du skrive ' + (hoyde-10) + ' med både + og ( ), ellers blir det syntaksfeil.

Lenke til kommentar
Jeg tror du bør bytte ut punktumene du bruker for string concatenation med plusser. Altså: innerHTML='blabla' + bredde + 'blabla'. Punktum brukes i PHP, og pluss brukes i Javascript.

 

Takk, nå får jeg ingen feilmelding, men den vil ikke vises nå heller (har trykket på godta script).

 

Nåværende kode:

<!DOCTYPE html>
<html>
<head>
<title>Program veiviser</title>
<script>
var bredde = screen.width;
var hoyde = screen.height;
var bilde = 1;
function nextPicture() {
bilde = bilde + 1;
if (bilde == 1) {
document.getElementById("innhold").innerHTML='<video width="' + bredde + '"height="' + (hoyde-100) + '" id="video">Nettleseren din støtter ikke video-taggen</video>';
var video = document.getElementById("video");
video.src="C:\Users\be14059604\Videos\Intro NRK Nyheter.mp4";
video.play()
}
}
</script>
</head>
<body>
<div id="innhold"></div><br>
<div id="knapp"></div>
<script>
document.getElementById("knapp").innerHTML='<img src="Biblioteker\Bilder\svart_bakgrunn.png" width="' + bredde + '" height=100 onclick="nextPicture()>';
</script>
</body>
</html>

Endret av herdon
Lenke til kommentar

document.getElementById("knapp").innerHTML='<img src="Biblioteker\Bilder\svart_bakgrunn.png" width="' + bredde + '" height=100 onclick="nextPicture()">';

 

Mangler fremdeles " etter nextPicture()

 

function nextPicture() {

if (bilde == 1) {
 document.getElementById("innhold").innerHTML='<video width="' + bredde + '"height="' + (hoyde-100) + '" id="video">Nettleseren din støtter ikke video-taggen</video>';
 var video = document.getElementById("video");
 video.src="C:\Users\be14059604\Videos\Intro NRK Nyheter.mp4";
 video.play()

}
bilde = bilde + 1;
}

Du må nesten sette bilde = bilde + 1; i slutten av funksjonen, ellers blir bilde = 2, og da fungerer ikke if( bilde == 1) lenger.

 

du kan også skrive bilde++; har samme funksjon som bilde = bilde + 1;

Endret av creator84
Lenke til kommentar
 document.getElementById("knapp").innerHTML='[img=sad.jpg]'; 

Mangler fremdeles " etter nextPicture()

 function nextPicture() { if (bilde == 1) { document.getElementById("innhold").innerHTML='	Nettleseren din støtter ikke video-taggen
'; var video = document.getElementById("video"); video.src="C:\Users\be14059604\Videos\Intro NRK Nyheter.mp4"; video.play() } bilde = bilde + 1; } 

Du må nesten sette bilde = bilde + 1; i slutten av funksjonen, ellers blir bilde = 2, og da fungerer ikke if( bilde == 1) lenger.

 

Tusen takk, grunnen til at jeg satte bilde=1 var for en test som uansett ikke ville fungere, så nå har jeg satt startverdien tilbake til 0, og det fungerer.

Lenke til kommentar

Jeg har fått et nytt problem:

 

Når jeg ber den om å endre video finner den visstnok ikke src.

 

Feilmelding:

SCRIPT5007: Kan ikke angi verdien for egenskapen src: objektet er null eller udefinert

teknisk_veiviser.html, linje 27 tegn 1

 

Kode:

<!DOCTYPE html>
<html>
<head>
<title>Program veiviser</title>
<style>
body
{
background-color:#000000;
text-align:center;
}
</style>
<script>
var bredde = screen.width - 10;
var hoyde = screen.height;
var bilde = 0;
function nextPicture() {
bilde = bilde + 1;
if (bilde == 1) {
document.getElementById("innhold").innerHTML='<video width="' + bredde + '"height="' + (hoyde-40) + '" id="video">Nettleseren din støtter ikke video-taggen</video>';
var video = document.getElementById("video");
video.src="Intro_NRK_Nyheter.mp4";
video.loop=false;
video.play()
video.addEventListener('ended', function() {nextPicture()})
}
if (bilde == 2) {
video.src="Død_Ulv_Helfigur_web.mp4";
video.loop=true;
video.play();
}
}
</script>
</head>
<body>
<div id="innhold"></div>
<div id="knapp"></div>
<script>
document.getElementById("knapp").innerHTML='<img src="grå_bakgrunn.png" width="' + bredde + '" height=10 onclick="nextPicture()">';
</script>
</body>
</html>

Lenke til kommentar

Siste lille finish som gikk feil: Når variabelen bilde når verdien 4, så skal videoen bli borte (sånn som den var i startposisjon) og variabelen bilde skal bli til 0.

 

Men når variabelen blir fire, så ser det ut som om den i tillegg til det fortsetter, sånn at den går i loop, hvorfor?

 

Nåværende kode:

<!DOCTYPE html>
<html>
<head>
<title>Program veiviser</title>
<style>
body
{
background-color:#000000;
text-align:center;
}
</style>
<script>
var bredde = screen.width - 10;
var hoyde = screen.height;
var bilde = 0;
var video
function nextPicture() {
bilde = bilde + 1;
if (bilde == 1) {
document.getElementById("innhold").innerHTML='<video width="' + bredde + '"height="' + (hoyde-40) + '" id="video">Nettleseren din støtter ikke video-taggen</video>';
video = document.getElementById("video");
video.src="Intro_NRK_Nyheter.mp4";
video.loop=false;
video.play()
video.addEventListener('ended', function() {nextPicture()})
}
if (bilde == 2) {
video.src="død_ulv_helfigur_web.mp4";
video.loop=true;
video.play();
}
if (bilde == 3) {
video.src="Outtro.mp4";
video.loop=false;
video.play();
video.addEventListener('ended', function() {nextPicture()})
}
if (bilde == 4) {
bilde = 0;
document.getElementById("innhold").innerHTML='';
}
}
</script>
</head>
<body>
<div id="innhold"></div>
<div id="knapp"></div>
<script>
document.getElementById("knapp").innerHTML='<img src="grå_bakgrunn.png" width="' + bredde + '" height=10 onclick="nextPicture()">';
</script>
</body>
</html>

Lenke til kommentar

Prøv med dette og se om det hjelper.

 

if (bilde == 4) {
bilde = 0;
document.getElementById("innhold").innerHTML='';
video.pause();
}

 

Hjalp desverre ikke, men det kan være pga. at det den gjør er at den gjør funksjonen en gang mer enn den skulle (der det er video.play).

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...