Avatar billede akyhne Nybegynder
29. august 2008 - 13:04 Der er 18 kommentarer og
1 løsning

Lille fejl i javascript

Jeg har fundet følgende script til at indsætte smileys i en tekstboks. Den virker fint i både IE og FF, men jeg får en advarsel i FF's fejlkonsol: "Tom streng videregivet til GetElementById()."

function insertAtCursor(AField, myValue) {
  myField = document.getElementById(AField);
  if (document.selection) { //IE support
    var temp;
    myField.focus();
    sel = document.selection.createRange();
    temp = sel.text.lenght;
    sel.text = myValue;
    if (myValue.length == 0) {
      sel.moveStart('character', myValue.length);
      sel.moveEnd('character', myValue.length);
    } else {
      sel.moveStart('character', -myValue.length + temp);
    }
    sel.select();
  } else if (myField.selectionStart || myField.selectionStart == '0') { //MOZILLA/NETSCAPE support
    var startPos = myField.selectionStart;
    var endPos = myField.selectionEnd;
    myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
    myField.selectionStart = startPos + myValue.length;
    myField.selectionEnd = startPos + myValue.length;
  } else {
    myField.value += myValue;
  }
 
  myField.focus();
}

Som sagt virker scriptet som det skal, men jeg vil gerne have fejlen væk.
Avatar billede w13 Novice
29. august 2008 - 13:08 #1
Skyldes fejlen linjen:

  myField = document.getElementById(AField);

?
Avatar billede akyhne Nybegynder
29. august 2008 - 13:16 #2
Oprindeligt var første linie således:
function insertAtCursor(myField, myValue) {

Men så sagde FF noget med at myField ikke eksisterede.

Derfor indsatte jeg

myField = document.getElementById(AField);

og rettede myField til Afield i første linie.
Avatar billede w13 Novice
29. august 2008 - 13:41 #3
Prøv at rette:

function insertAtCursor(AField, myValue) {
  myField = document.getElementById(AField);

til:

function insertAtCursor(myField, myValue) {
  if(typeof(myField)=="string") myField = document.getElementById(myField);
Avatar billede w13 Novice
29. august 2008 - 13:43 #4
Så burde den fungere både som den gjorde før, og sådan som du har rettet det til. Hvis den modtager et object, bliver det brugt som object, hvis den modtager et id, så finder den id'ets object.

Muligvis sker fejlen, når funktionen kaldes et andet sted.
Avatar billede akyhne Nybegynder
29. august 2008 - 13:59 #5
Samme fejl.
Avatar billede w13 Novice
29. august 2008 - 14:02 #6
Er du helt sikker på, det skyldes den linje? Passer det med linjenr.?
Avatar billede akyhne Nybegynder
29. august 2008 - 14:11 #7
Nu prøvede jeg lige med det oprindelige script (som jeg fandt det på nettet) for at få at vide hvad fejlen var:
"Myfield.focus is not a function". Her virker scriptet slet ikke.

Dit script giver blot fejlen "Tom streng videregivet til GetElementById()." - samme som jeg havde med min kode.
Avatar billede akyhne Nybegynder
29. august 2008 - 14:12 #8
Jeg får i øvrigt ikke noget linienimmer på fejlen. Det er i øvrigt FF version 3.0.1
Avatar billede roenving Novice
31. august 2008 - 16:44 #9
-- så prøv at linke til et eksempel !-)
Avatar billede roenving Novice
31. august 2008 - 18:38 #10
-- nu har jeg også haft den fejl, som olebole omtalte for nogle dage siden, at browseren på bestemte Eksperten-sider vælger et andet tegnsæt end det normale ...

-- sidste indlæg skal selvfølgelig være:

-- så prøv at linke til et eksempel !-)
Avatar billede akyhne Nybegynder
31. august 2008 - 22:05 #11
http://www.racingcar.dk/eksperten/chat.html - strippet for en hel del, men stadig samme fejl.
Avatar billede akyhne Nybegynder
02. september 2008 - 19:36 #12
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>

<body>
a
</body>
</html>


giver samme fejl...
Avatar billede w13 Novice
02. september 2008 - 20:45 #13
Hvis den side virkelig giver den fejl, så har det jo intet med din kode at gøre. =)
Avatar billede akyhne Nybegynder
02. september 2008 - 20:55 #14
Nej, såmændt. Er der ikke andre der får fejlen i FF?
Avatar billede w13 Novice
03. september 2008 - 00:12 #15
Nej. Du kan jo heller ikke få en JavaScript-fejl (hvis der stadig er tale om GetElementById-fejlen), når du ikke har JavaScript i dokumentet. Ser du samme fejl på andre sider?
Avatar billede akyhne Nybegynder
03. september 2008 - 00:36 #16
Den kommer på mange sider, men ikke på eksperten.
Avatar billede akyhne Nybegynder
03. september 2008 - 00:37 #17
Det ender nok med en geninstallation.
Avatar billede akyhne Nybegynder
09. september 2008 - 10:49 #18
Og det har jeg gjort flere gange uden held. Andre må have samme problem.
Avatar billede akyhne Nybegynder
21. november 2008 - 21:19 #19
Det er åbenbart en uløselig fejl i FF. Jeg må vente til de får fejlen rettet.
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