Avatar billede lightbrain Nybegynder
15. juli 2002 - 13:06 Der er 15 kommentarer og
1 løsning

Simpel script fejl

Hej

Hvorfor får jeg fejlmeddelelsen "kan ikke flytte dertil" (min egen fejlmeddelelse), når jeg klikker:

1) "Arranger artikel" og klik "Ok"
2) "Sektion1"
3) "Emne1"
4) Marker f.eks. "3" og klik på pilen op.

Fejlen ligger vidst nok i variablen "selo", tror jeg.

____________________________________________________

<html>

<head>
<META NAME="Generator" CONTENT="Microsoft FrontPage 5.0">
<meta http-equiv="Content-Language" content="da">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>

<script>

//************************************************************************
//                                 FÆLLES
//************************************************************************ 

screenTaellerAdminA = 1;
screenTaellerArranger = 1;

artikelTilladt = "false";
emnelTilladt = "false";
sektionTilladt = "false";
ikkePlaceretTilladt = "false";

var gruppe = new Array();
gruppe[1] = new Array();
gruppe[2] = new Array();
gruppe[3] = new Array();

function artikel(artikelnr, titel, forfatter, beskrivelse, filnavn, emnenr, niveau, aendret) {
  this.artikelnr= artikelnr;
  this.titel= titel;
  this.forfatter= forfatter;
  this.beskrivelse= beskrivelse;
  this.filnavn= filnavn;
  this.emnenr= emnenr;
  this.niveau= niveau;
  this.aendret= aendret;
}

function sektion(sektionnr, titel, niveau, aendret) {

  this.sektionnr= sektionnr;
  this.titel= titel;
  this.niveau= niveau;
  this.aendret= aendret;
}

function emne(emnenr, titel, sektionnr, farve, placering, niveau, aendret) {
  this.emnenr= emnenr;
  this.titel= titel;
  this.sektionnr= sektionnr;
  this.farve= farve;
  this.placering= placering;
  this.niveau= niveau;
  this.aendret= aendret;
}

function erstat(streng) {
   
    streng = streng.replace(/´/gi,"\'");
    streng = streng.replace(/&quot;/gi,"\"");
    streng = streng.replace(/<br>/gi, "\n");

return streng;
}

function indlaesInfo (form, i) {

    form.artikelnr.value = gruppe[1][i].artikelnr;
    form.titel.value = erstat(gruppe[1][i].titel);
    form.forfatter.value = erstat(gruppe[1][i].forfatter);
    form.beskrivelse.value = erstat(gruppe[1][i].beskrivelse);
    form.filnavn.value = gruppe[1][i].filnavn;
}

// ****************************************************************************
//                                  Fælles - Menuer
// ****************************************************************************

function IndlaesFoersteMenu( form ) {

    for (var i = 1;i < gruppe[2].length; i++)  {
        form.sektion.options[i - 1] = new Option( erstat(gruppe[2][i].titel), gruppe[2][i].sektionnr );
    }
}

function IndlaesIkkePlaceret( element ) {

    y = 0;
      for (var i = 1;i < gruppe[1].length; i++)  {
        if ( gruppe[1][i].emnenr == 0) {
              element.options[y] = new Option( erstat(gruppe[1][i].titel), gruppe[1][i].artikelnr);
              y++;
        }
      }
}
               
function IndlaesMenuer( form, detteElement, naesteElement) {
   
    if (MenuNotEmpty(detteElement))  {

        form.ikkePlaceret.selectedIndex = -1;   
        y = 1;

          if (detteElement.name == "sektion") {
              arrayNr = 3;
              form.emne.length = 0;
              form.artikel.length = 0;
              document.getElementById("vis" + form.name + "artikel").style.display = 'none';
             
              if (form.name == "Arranger") document.getElementById("visArrangerIkkePlaceret").style.display = 'none';
          }
         
          else if (detteElement.name == "emne") {
              arrayNr = 1;
             
            if (form.name == "Arranger") {
                if (form.valg[0].checked)
                    document.getElementById("visArrangerartikel").style.display = 'block';
                document.getElementById("visArrangerikkePlaceret").style.display = 'block';
                checkPile(form, detteElement);
            }
        }             
         
        for (var i = 1;i < gruppe[arrayNr].length; i++)  {
            if ( detteElement.value == gruppe[arrayNr][i][detteElement.name + "nr"]) {
                naesteElement.options[gruppe[arrayNr][i].niveau - 1] = new Option( erstat(gruppe[arrayNr][i].titel), gruppe[arrayNr][i][naesteElement.name + "nr"]);
                  y++;
              }
          }
       
        /*for (var i = 1;i < gruppe[2].length; i++)  {
            naesteElement.options[i - 1] = new Option( gruppe[2][i].titel, gruppe[2][i].sektionnr );
        }*/
                 
          //                             **** UNDTAGELSERNE ****
        if (form.valg[0].checked && naesteElement.name == "artikel" || form.name == "Arranger" && naesteElement.name == "artikel" && y == 1 ) {
             
              if (form.valg[0].checked && naesteElement.name == "artikel") {
                  //Ingenting
              }
             
              if (form.name == "Arranger" && naesteElement.name == "artikel" && y == 1 ) {             
                form.artikel.length = 0;
                if (document.Status.showHelp.checked)
                    alert("Dette emne er tomt. Du kan flytte artikler til emnet ved at dobbeltklikke på de artikler, som findes under Ikke Placeret.");
            }            
          }
          else if (y > 1) {
              document.getElementById("vis" + form.name + naesteElement.name).style.display = 'block';
          }
          else {
              document.getElementById("vis" + form.name + naesteElement.name).style.display = 'none';
              alert("Det valgte punkt er tomt - prøv med et andet.");
          }
      }
}

function MenuNotEmpty ( element ) {
   
    if (element.selectedIndex > -1 && element.selectedIndex < element.options.length)
        return true;
}

// ****************************************************************************
//                              Fælles - Sortering
// ****************************************************************************

function ArrangerResten (element) {

    //Resten skal have nye værdier, da en artikel er blevet taget ud
    if (element.name == "artikel" || element.name == "ikkePlaceret") {
        arrayNr = 1;
        noegle = "artikelnr";
    }
    else
        if (element.name == "emne") {
            arrayNr = 3;
            noegle = "emnenr";
        }
       
    for (var y = 0; y < element.length; y++)  {
        for (var i = 1;i < gruppe[arrayNr].length; i++)  {
            if (gruppe[1][i][noegle] == element.options[y].value) {
                gruppe[1][i].niveau = y + 1;
                gruppe[1][i].aendret = "ja";
            }
        }
    }
}

function FindAendrede (form) {
   
    aendret = "";
           
    for (var i = 1;i < gruppe[1].length; i++)  {
        if (gruppe[1][i].aendret == "ja") {           
            common = gruppe[1][i].artikelnr + "-" + gruppe[1][i].emnenr + "-" + gruppe[1][i].niveau;;
   
            if (aendret == "") aendret = common;
                else aendret = aendret +","+ common;               
        }
    }
    if (aendret != "") form.aendret.value = aendret;
}

// ****************************************************************************
//                              Fælles - Diverse
// ****************************************************************************


function checkAabneOpgaver (form) {
   
    if ("screenTaeller" + form.name > 1) {
        alert("Du kan ikke starte på nye opgaver, mens du stadig arbejder på en. Tryk evt. 'Annuller'.");
        return false;
    }
    else return true;
}

function skriv(placering, tekst) {
    if (document.getElementById) document.getElementById(placering).innerHTML = tekst;
        else if (document.all) document.all.placering.innerHTML = tekst;
            else if (document.layers) document.lag1.document.write(txt);
}


// ****************************************************************************
//                              ARRANGERARTILKER
// ****************************************************************************


function hovedFunktionArranger() {

    if (checkAabneOpgaver(document.Arranger)) {
   
        if (document.Arranger.valg[0].checked) {
            if (screenTaellerArranger == "1") {
                document.getElementById("visArrangerValg").style.display = 'none';
                document.getElementById("visArrangersektion").style.display = 'block';
                document.getElementById("visArrangerArtikelPile").style.display = 'block';
           
                skriv("tekst1Arranger", "Du har valgt at arrangere en artikel. Hvor er artiklen placeret?");
   
                IndlaesFoersteMenu(document.Arranger);
               
                artikelTilladt = "true";
                ikkePlaceretTilladt = "true";
               
                IndlaesIkkePlaceret(document.Arranger.ikkePlaceret);
                LaasAlle(document.Arranger);
                screenTaellerArranger++;
           
                return false;
            }
            else if (screenTaellerArranger == "2") {
       
                FindAendrede(document.Arranger);
            }
        }
       
        if (document.Arranger.valg[1].checked) {       
            if (screenTaellerArranger == "1") {       
                document.getElementById("visArrangerValg").style.display = 'none';
                document.getElementById("visArrangersektion").style.display = 'block';
                document.getElementById("visArrangerEmnePile").style.display = 'block';
           
                skriv("tekst1Arranger", "Du har valgt at arrangere et emne. Hvor er emnet placeret?");
   
                IndlaesFoersteMenu(document.Arranger);
               
                emneTilladt = "true";
                artikelTilladt = "false";
                ikkePlaceret = "true";
               
                IndlaesIkkePlaceret(document.Arranger.ikkePlaceret);
                LaasAlle(document.Arranger);
                screenTaellerArranger++;
           
                return false;
            }
        }
    }
    else return false;
}

function LaasAlle( form ) {
   
    form.OpEmne.disabled = true;
    form.NedEmne.disabled = true;
    form.Op.disabled = true;
    form.Ned.disabled = true;
}

function checkPile (form, element) {

    if ( MenuNotEmpty(element)) {
       
        if (element.name == "emne") {
            //form.artikel.selectedIndex = -1;
            form.ikkePlaceret.selectedIndex = -1;

            if (element.selectedIndex == 0 )
                form.OpEmne.disabled = true;
            else
                form.OpEmne.disabled = false;
   
            if (element.selectedIndex == element.options.length - 1 )
                form.NedEmne.disabled = true;
            else
                form.NedEmne.disabled = false;
        }

        if (element.name == "artikel") {
            form.ikkePlaceret.selectedIndex = -1;

            if (element.selectedIndex == 0 )
                form.Op.disabled = true;
            else
                form.Op.disabled = false;
       
            if (element.selectedIndex == element.options.length - 1 )
                form.Ned.disabled = true;
            else
                form.Ned.disabled = false;
        }
   
        if (element.name == "ikkePlaceret") {
            form.Op.disabled = true;
            form.Ned.disabled = true;
            form.artikel.selectedIndex = -1;
        }
    }
}

var sel;
var selo;

function checkSel ( frm ) {
  sel  = frm.artikel.selectedIndex;
  selo = frm.artikel;

  if ( 0 > sel ) {
    alert( "der skal vælges en sang først" );
    return false;
  };
  return true;
}; //end chackSel ( Form object ) -> boolean

function checkDest ( dest ) {
  if ( 0>dest || dest >= selo.length ) {
    alert( "sangen kan ikke flyttes derhen" );
    return false;
  };
  return true;
}; //end checkDest ( integer ) -> boolean

function ombyt ( fra, til ) {
  var tmpTxt      = selo[fra].text;
  selo[fra].text  = selo[til].text;
  selo[til].text  = tmpTxt;
  var tmpVal      = selo[fra].value;
  selo[fra].value = selo[til].value;
  selo[til].value = tmpVal;
  return til;
}; //end ombyt ( integer, integer )

function findHead ( sel ) {  // find den forreste i denne gruppe
    //alert(sel);
    while ( sel > 0 && selo[sel].value.substring(0,1)=='2' ) sel -= 1;
    //alert(sel);
    return sel;
}; //end findHead ( number ) -> number

function findTail ( sel ) {  // find den bagerste i gruppen
    while ( selo.length-1 > sel && selo[sel+1].value.substring(0,1)=='2' ) sel += 1;
    return sel;
}; //end findTail ( number ) -> number

function flytOp ( frm ){
    if ( checkSel( frm ) ) {
        var forste = findHead( sel );
        var sidste = findTail( sel );
        if ( forste > 0 ) {
          var dest = findHead( forste-1 );  // find første i forrrige gruppe
          var nyIndex = dest;
          for (var i=forste; sidste>=i; i++,dest++ ) {
              for (var j=i; j>dest; ) j = ombyt( j, j-1 );
          }
          frm.artikel.selectedIndex = nyIndex;  // ender med forreste i gruppen valgt på ny plads
        } else {
          alert( "kan ikke flytte derhen" )
        }     
    }
}; //end flytOp( form object )

function flytNed( frm ) {
    if ( checkSel( frm ) ) {
        var forste = findHead( sel );
        var sidste = findTail( sel );
        if ( selo.length-1 > sidste ) {
          var dest = findTail( sidste+1 );  // find sidste i senere gruppe
          for (var i=sidste; i>=forste; i--,dest-- ) {
              for (var j=i; dest>j; ) j = ombyt( j, j+1 );
          }
          frm.artikel.selectedIndex = dest+1;  // ender med forreste i gruppen valgt på ny plads
        } else {
          alert( "kan ikke flytte derhen" )
        }     
    }
}; //end flytNed( form object )

function flyt(form, element) {

    if ( MenuNotEmpty (element)) {

        //Opdaterer den enkelte flytning af artiklen
        if (element.name == "ikkePlaceret") {
            for (var i = 1;i < gruppe[1].length; i++)  {         
                if (gruppe[1][i].artikelnr == document.Arranger.ikkePlaceret.value) {
                    gruppe[1][i].emnenr = document.Arranger.emne.value;               
                    gruppe[1][i].niveau = document.Arranger.artikel.length + 1;
                    gruppe[1][i].aendret = "ja";
                }
            }
        }

        else if (element.name == "artikel") {
            for (var i = 1;i < gruppe[1].length; i++)  {         
                if (gruppe[1][i].artikelnr == document.Arranger.artikel.value) {
                    gruppe[1][i].emnenr = 0;
                    gruppe[1][i].niveau = 0;
                    gruppe[1][i].aendret = "ja";               
                }
            }   
        }
       
        sel1 = (element.name == "artikel") ? form.artikel : form.ikkePlaceret;
        sel2 = (element.name == "artikel") ? form.ikkePlaceret : form.artikel;
        ind = sel1.selectedIndex;
        sel2.options.length += 1;
        sel2.options[sel2.options.length - 1].text = sel1.options[ind].text;
        sel2.options[sel2.options.length - 1].value = sel1.options[ind].value;
        sel1.options[ind] = null;
       
        ArrangerResten (element);
        LaasAlle(document.Arranger);
    }
}

function fjern ( selObj ) {
  if ( checkSel( selObj ) )
      if ( selo.length > 1 ) {
        while ( selo.length>sel+1 ) sel = ombyt( sel, sel+1 );
        selo.length = sel;
        selObj.selectedIndex = -1;
      }
};

function FokusIkkePlaceret (form, element) {

    if (MenuNotEmpty(element)) {
        form.sektion.selectedIndex = -1;
        form.emne.length = 0;
          form.artikel.length = 0;
      }
}

</script>

</head>

<body>

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
  <tr>
    <td width="100%" valign="top" colspan="3">
    &nbsp;</td>
    </tr>
  <tr>
    <td width="33%" valign="top">
    &nbsp;</td>
    <td width="25%" valign="top">
   
  <form method="POST" name="Arranger" action="index.asp" onSubmit="return hovedFunktionArranger();">
  <fieldset style="padding: 2">
  <legend align="center"><font face="Trebuchet MS">Arrangér </font></legend>
  <blockquote>
 
  <div id="visArrangerValg" style="display:block; position:relative;">
    <p><font face="Trebuchet MS" size="2"><br>
    <input type="radio" value="ArrangerArtikel" name="valg" onClick="document.Arranger.Ok.disabled = false;">Arranger
    artikel</font></p>
    <p><font face="Trebuchet MS" size="2">
    <input type="radio" value="ArrangerEmne" name="valg" onClick="document.Arranger.Ok.disabled = false;">Arranger
    emne</font></p>
    <p><font face="Trebuchet MS" size="2">
    <input type="radio" value="ArrangerSektion" name="valg" onClick="document.Arranger.Ok.disabled = false;">Arranger
    sektion</font></p>
  </div>
 
  <font face="Trebuchet MS"><font size="2"><div id="tekst1arranger" style="display:block; position:relative;"><layer id="lag1"></layer></div></font>

    <div id="visArrangersektion" style="display:None; position:relative;">   
  <p><font size="2">Sektion<br>
  </font>
  <select size="5" style="width: 120px" name="sektion" onclick="self.IndlaesMenuer(this.form, this, this.form.emne);"> 
  </select></p>
  </div>
  <div id="visArrangeremne" style="display:None; position:relative;">
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="88" id="AutoNumber3">
    <tr>
      <td width="120">
   
       
<font face="Trebuchet MS"><font size="2">Emne<br>
  </font>
  <select size="5" style="width: 120px" name="emne" onclick="self.IndlaesMenuer(this.form, this, this.form.artikel);">
  </select></font></td>
      <td width="19">
   
       
<div id="visArrangerEmnePile" style="display:none; position:relative;">
<font face="Trebuchet MS">
      <button name="OpEmne" style="width: 19; height: 19" value="OpEmne" onclick="flytOp(this.form, this.form.emne)">
      <font face="Marlett" size="2">5</font></button><br>
      <button name="NedEmne" style="width: 19; height: 19" value="NedEmne" onclick="flytNed(this.form, this.form.emne)">
      <font face="Marlett" size="2">6</font></button>
  </font>
</div>
      </td>
    </tr>
  </table>
  </div>

  <div id="visArrangerartikel" style="display:None; position:relative;">
    <p>
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="58" id="AutoNumber2">
    <tr>
      <td width="33" height="19" align="left" valign="top">
   
       
    <font face="Trebuchet MS">
  <font face="Trebuchet MS" size="2">Artikel</font><select name="artikel" style="width: 120px" onDblClick="flyt(this.form, this);" onClick="forsinkelse = setTimeout('self.checkPile(document.Arranger, document.Arranger.artikel);', 50);" size=5></select>
        </select></font></td>
      <td width="25">
   
<div id="visArrangerArtikelPile" style="display:none; position:relative;">     
<font face="Trebuchet MS">
      <button name="Op" style="width: 19; height: 19" value="Op" onclick="flytOp(this.form)">
      <font face="Marlett" size="2">5</font></button><br>
      <button name="Ned" style="width: 19; height: 19" value="Ned" onclick="flytNed(this.form)">
      <font face="Marlett" size="2">6</font></button>
  </font>
</div>

      </td>
    </tr>
  </table>
  </div>

  <div id="visArrangerIkkePlaceret" style="display:None; position:relative;">
  <p><hr color="#C0C0C0">
 

        <font size="2">Ikke placeret</font><br>
        <select name="ikkePlaceret" style="width: 120px" onDblClick="flyt(this.form, this);" onClick="forsinkelse = setTimeout('self.checkPile(document.Arranger, document.Arranger.ikkePlaceret);', 50);" size=5>
        </select>
        </p>
  </div>

  <p align="left">
  <input type="submit" value="    Ok    " name="Ok" disabled="true"><font size="2">&nbsp;
  </font>
  <input type="button" value="Annullér" name="Annuller" onClick="location.href='index.asp?status=Handlingen blev annulleret!'";></p>

    </blockquote>
    </font>
    <input type="hidden" name="aendret" value=" ">
    </fieldset></form>
      </fieldset>
    </td>
    <td width="34%" valign="top">
    &nbsp;</td>
  </tr>
</table>

<script>gruppe[1][1]=new artikel ("262","1","", "", "", "3", "1");gruppe[1][2]=new artikel ("263","2","", "", "", "3", "2");gruppe[1][3]=new artikel ("264","3","", "", "", "3", "3");gruppe[2][1]=new sektion("1","Sektion1","1");gruppe[2][2]=new sektion("2","Sektion2","2");gruppe[2][3]=new sektion("3","Sektion3","3");gruppe[2][4]=new sektion("4","Sektion4","4");gruppe[3][1]=new emne("3","Emne1", "1", "1","1","1");gruppe[3][2]=new emne("4","Emne2", "2", "1","2","1");gruppe[3][3]=new emne("5","Emne3", "3", "1","3","1");gruppe[3][4]=new emne("7","Emne3½", "3", "1","4","2");</script>

</body>

</html>
Avatar billede lightbrain Nybegynder
15. juli 2002 - 13:10 #1
Side kræver vidst nok at man bruger IE.
Avatar billede lightbrain Nybegynder
15. juli 2002 - 13:11 #2
Side = siden
Avatar billede tomred Nybegynder
15. juli 2002 - 13:34 #3
forste i flytOp() er vel altid 0.
Avatar billede mikoalngelo Nybegynder
15. juli 2002 - 13:41 #4
Du kan godt glemme ALT om at få hjælp fra min side af. det er ALT for avanceret for mig... :(
Avatar billede mikoalngelo Nybegynder
15. juli 2002 - 13:42 #5
tomred nej -1
Avatar billede tomred Nybegynder
15. juli 2002 - 13:53 #6
Eftersom selo[sel].value.substring(0,1)=='2' altid er true for de 3 artikler (262, 263 og 264) returneres der altid 0 i funktionen findHead().
Altså er forste i flytOp() altid = 0.
Avatar billede lightbrain Nybegynder
15. juli 2002 - 13:53 #7
Ok, men er der så andre, der kan hjælpe.
Avatar billede tomred Nybegynder
15. juli 2002 - 13:59 #8
... og derfor får du beskeden "kan ikke flytte derhen"!
Avatar billede lightbrain Nybegynder
15. juli 2002 - 13:59 #9
>>tomred
>>der altid 0 i funktionen findHead().
Ja, men hvordan omskrives scriptet, så det ikke gør det. (Med andre ord; hvordan omskrives scriptet, således at jeg kan flytte op og ned med punkterne i menuen?)
Avatar billede tomred Nybegynder
15. juli 2002 - 14:08 #10
Hvis du blot skal flytte op så :
frm.artikel.selectedIndex = frm.artikel.selectedIndex-1;

men er der et eller andet system i hvilke der må få fokus i den pågældende listbox så kræver det nok lidt mere ...
Avatar billede limemedia Nybegynder
15. juli 2002 - 14:08 #11
tillad mig at spørge lidt dumt - jeg har et stykke tid leget lidt med dit script indtil jeg opdagede at hvis et punkt i listen er første, er knappen "flyt op" deaktiveret, og det samme for flyt ned...

Så, hvis nu jeg i din kode omskriver funktionen flytOp til
function flytOp ( frm ){
    if ( checkSel( frm ) ) {
        ombyt(frm.artikel.selectedIndex, frm.artikel.selectedIndex-1);
    }
}; //end flytOp( form object )

jamen, så virker det jo  (du skal så selv lave flytned, men mon ikke du ved hvad du så skal ?)


/ LJ
www.ljweb.com
Avatar billede lightbrain Nybegynder
15. juli 2002 - 14:15 #12
>>ljweb
Det har du helt ret i, så mangler vi bare at få den blå markering/fokus til at flytte med op (eller ned) på punktets nye plads?
Avatar billede limemedia Nybegynder
15. juli 2002 - 14:18 #13
at du spørger får mig til at tvivle om du virkeligt selv har kodet systemet, here goes

function flytOp ( frm ){
  if ( checkSel( frm ) ) {
    ombyt(frm.artikel.selectedIndex, frm.artikel.selectedIndex-1);
    frm.artikel.selectedIndex = frm.artikel.selectedIndex-1;
  }
}; //end flytOp( form object )
Avatar billede limemedia Nybegynder
15. juli 2002 - 14:19 #14
hov, det skrev du heller ikke du havde *sorry*
Avatar billede lightbrain Nybegynder
15. juli 2002 - 14:19 #15
Mange tak for hjælpen :-)
Avatar billede limemedia Nybegynder
15. juli 2002 - 14:52 #16
så lidt :)
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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging