Avatar billede xvid Seniormester
28. juli 2005 - 19:23 Der er 19 kommentarer og
1 løsning

Lave script lidt om

Hej

Jeg vil gerne høre om der nogen der kan hjælpe mig med at lave et script om?

Det drejer sig om denne hvilket virker fint :-) :

<html><head><title>Farve</title><SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function test(form) {
if (form.text.value == "")
alert("What\'s your favorite color?")
else {
document.bgColor=(""+form.text.value+"");
  }
}// End --></SCRIPT></head><body scroll="no"><CENTER><FORM><p><font size="3"><font face="Arial">Skriv farven
  her :&nbsp;&nbsp;#
  </font></font><!--webbot bot="Validation" B-Value-Required="TRUE"
  I-Minimum-Length="6" I-Maximum-Length="6" --><input name="text" size="10" tabindex="6" maxlength="6">&nbsp;&nbsp;
  <input type="button" name="button" value="  Tryk her!  " onClick="test(this.form)"></p></FORM></CENTER></body></html>

Det som jeg vil gerne lave en slags mindre database og at i stedetfor at man skriver farven i hex så skal man kunne skrive en mindre tekst i stedetfor, f.eks. hvis man nu skriver S2060-Y10R og trykker på "musen" eller "enter" bliver vinduets baggrundsfarve lavet om til #a28811

Håber at der er en eller anden der kan hjælpe mig ;-)

På forhånd mange tak
Avatar billede roenving Novice
28. juli 2005 - 19:33 #1
<script type="text/javascript">
var colors = new Array();
colors[color.length] = ["S2060-Y10R","a28811"];
colors[color.length] = ["S2060-Y10R","a28811"];//Du skal selvfølgelig ændre, så alle farverne bliver repræsenteret !-)
colors[color.length] = ["S2060-Y10R","a28811"];
colors[color.length] = ["S2060-Y10R","a28811"];

...

function chColor(f){
  var col = "fff";
  if(!f.txt.elm.value.match(/[\da-f]{6}/i)){
    for(i=0;colors.length>i;i++){
      if(colors[i][0].toLowerCase() == f.txt.value.toLowerCase()){
        col = colors[i][1];
        break;
      }
    }
  }else col = f.txt.value;
  document.body.style.backgroundColor = "#" + col;
}
</script>
Avatar billede xvid Seniormester
28. juli 2005 - 19:36 #2
hej

tak for dit hurtig svar man jeg får en fejl i linje 12.

<html>
<head>
<title></title>
<script type="text/javascript">
var colors = new Array();
colors[color.length] = ["S2060-Y10R","a28811"];
colors[color.length] = ["S2060-Y10R","a28811"];//Du skal selvfølgelig ændre, så alle farverne bliver repræsenteret !-)
colors[color.length] = ["S2060-Y10R","a28811"];
colors[color.length] = ["S2060-Y10R","a28811"];
...
function chColor(f){
  var col = "fff";
  if(!f.txt.elm.value.match(/[\da-f]{6}/i)){
    for(i=0;colors.length>i;i++){
      if(colors[i][0].toLowerCase() == f.txt.value.toLowerCase()){
        col = colors[i][1];
        break;
      }
    }
  }else col = f.txt.value;
  document.body.style.backgroundColor = "#" + col;
}
</script></head><body></body></html>
Avatar billede roenving Novice
28. juli 2005 - 19:38 #3
Hov, der manglede da et s:

colors[colors.length] = ["S2060-Y10R","a28811"];
Avatar billede roenving Novice
28. juli 2005 - 19:40 #4
-- jeg fik heller ikke fjernet elm, da jeg først havde skrevet koden til at reagere onchange på feltet, så:

  if(!f.txt.value.match(/[\da-f]{6}/i)){
Avatar billede xvid Seniormester
28. juli 2005 - 19:54 #5
<html><head><title>Farve</title><SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function test(form) {
if (form.text.value == "")
alert("What\'s your favorite color?")
else {
document.bgColor=(""+form.text.value+"");
  }
}// End --></SCRIPT>
<script type="text/javascript">
var colors = new Array();
colors[colors.length] = ["S2060-Y10R","a28811"];
colors[colors.length] = ["S2060-Y10R","a28811"];//Du skal selvfølgelig ændre, så alle farverne bliver repræsenteret !-)
colors[colors.length] = ["S2060-Y10R","a28811"];
colors[colors.length] = ["S2060-Y10R","a28811"];

...

function chColor(f){
  var col = "fff";
  if(!f.txt.value.match(/[\da-f]{6}/i)){
    for(i=0;colors.length>i;i++){
      if(colors[i][0].toLowerCase() == f.txt.value.toLowerCase()){
        col = colors[i][1];
        break;
      }
    }
  }else col = f.txt.value;
  document.body.style.backgroundColor = "#" + col;
}
</script>
</head><body scroll="no"><CENTER><FORM><p><font size="3"><font face="Arial">Skriv farven
  her :&nbsp;&nbsp;#
  </font></font><!--webbot bot="Validation" B-Value-Required="TRUE"
  I-Minimum-Length="6" I-Maximum-Length="6" --><input name="text" size="10" tabindex="6" maxlength="6">&nbsp;&nbsp;
  <input type="button" name="button" value="  Tryk her!  " onClick="test(this.form)"></p></FORM></CENTER></body></html>


Er det rigtigt det her??

for jeg kan ikke få det til at virke
Avatar billede roenving Novice
28. juli 2005 - 20:03 #6
Næh, for du havde ikke checket, at navne var rigtige !-)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Farve</title>
<script typee="text/javascript">
<!-- Begin
function test(form) {
if (form.text.value == "")
alert("What\'s your favorite color?")
else {
document.bgColor=(""+form.text.value+"");
  }
}// End --></script>
<script type="text/javascript">
var colors = new Array();
colors[colors.length] = ["S2060-Y10R","a28811"];
colors[colors.length] = ["S2060-Y10R","a28811"];//Du skal selvfølgelig ændre, så alle farverne bliver repræsenteret !-)
colors[colors.length] = ["S2060-Y10R","a28811"];
colors[colors.length] = ["S2060-Y10R","a28811"];

//...

function chColor(f){
  var col = "fff";
  if(!f.txt.value.match(/[\da-f]{6}/i)){
    for(i=0;colors.length>i;i++){
      if(colors[i][0].toLowerCase() == f.txt.value.toLowerCase()){
        col = colors[i][1];
        document.getElementById('altFarve').innerHTML = colors[i][1];
        break;
      }
    }
  }else{
    col = f.txt.value;
    document.getElementById('altFarve').innerHTML = "";
  }
  document.body.style.backgroundColor = "#" + col;
}
</script>
</head>
<body scroll="no">
<center>
<form>
<p><font size="3" face="Arial">Skriv farven her :&nbsp;&nbsp;#</font>
<!--webbot bot="Validation" B-Value-Required="TRUE" I-Minimum-Length="6" I-Maximum-Length="6" -->
<input name="txt" size="10" tabindex="1">&nbsp;&nbsp;
<input type="button" name="button" value="  Tryk her!  " onclick="chColor(this.form)"><br>
<span id="altFarve"></span>
</p>
</form>
</center>
</body>
</html>

-- desuden havde du maxlength på inputten, desuden har jeg tilføjet et felt, så man kan se den alternative farve !-)
Avatar billede xvid Seniormester
28. juli 2005 - 20:23 #7
det virker helt perfekt :-)

TUSIND TAK  :-)
Avatar billede roenving Novice
28. juli 2005 - 20:24 #8
Velbekomme '-)
Avatar billede roenving Novice
28. juli 2005 - 20:28 #9
-- og tak for point ;~}
Avatar billede xvid Seniormester
28. juli 2005 - 23:04 #10
velbekomme  :-) tro mig det er mig der takker  :-))
Avatar billede xvid Seniormester
28. juli 2005 - 23:26 #11
hej igen :-)

jeg har lige et lille spørgsmål og det er kan man tilføje til scriptet et enterfunktion så man også kan få farven frem ved at trykke enter?
Avatar billede roenving Novice
28. juli 2005 - 23:31 #12
Det tror jeg egentlig godt man kan, men jeg har ikke tygget så meget på den slags events, så jeg lige kan ryste det ud af ærmet !-)
Avatar billede xvid Seniormester
28. juli 2005 - 23:48 #13
jeg har også lige fundet ud af at det er et meget eftersøgt spørgsmål :-)

man prøv at kigge her, har jeg fat i noget?

    // Funktion til at reagere på taste tryk
    function keyPress() {
        // Tjek hvilken knap der blev trykket på
        keyp = window.event.keyCode;

        // Hvis det var "o" der blev trykkey på, så åben menuen (lille o's kode er 111 og store o's kode er 79)
        if(keyp == 111 || keyp == 79) {
            // Tjek om menuen er åben, så den skal lukkes
            if(open == true) {
                hideMenu(); // Gem menuen

            // Ellers viser vi menuen
            } else {
                showMenu(); // Vis menuen
            }
    }
Avatar billede roenving Novice
28. juli 2005 - 23:56 #14
Desværre er event-modellerne meget forskellige i browserne, så ovenstående vil virke i de browsere, som bruger M$IEs event-model !-)

-- og Enter har keyCode 13 ...
Avatar billede roenving Novice
29. juli 2005 - 00:07 #16
Han er da godt nok grundig, men du kan luge alt det ud, som handler om at finde rundt i tabindex, så skulle du kunne bruge den !-)

PS. For en gangs skyld var der noget kompetent hjælp at hente via html.dk, men altså i en nyhedsgruppe, ikke i nogen af de faste sider !o]
Avatar billede xvid Seniormester
29. juli 2005 - 00:25 #17
det kan jeg slet ikke overskue
Avatar billede roenving Novice
29. juli 2005 - 00:32 #18
function handleKeyPress (){
  var e = typeof(window.event)!="undefined" ? window.event : arguments[0];
  if (e.keyCode==13){
    chColor(document.forms[0]);
  }
}
document.forms[0].onkeypress=handleKeyPress;

-- men jeg har heller ikke været så grundig som ham Martin !-)
Avatar billede xvid Seniormester
29. juli 2005 - 19:46 #19
Hej :-)

Jeg har lige et spørgsmål er det sådan at det skal se ud?

<script LANGUAGE="JavaScript">
function handleKeyPress (){
  var e = typeof(window.event)!="undefined" ? window.event : arguments[0];
  if (e.keyCode==13){
    chColor(document.forms[0]);
  }
}
document.forms[0].onkeypress=handleKeyPress;
</script>


og hvor skal jeg placere det i forhold til scriptet, er det bare mellem <head>det vil sige her?</head>
Avatar billede roenving Novice
29. juli 2005 - 23:32 #20
Nu har type="text/javascript" været obligatorisk de sidste 7 år, så den skal du nok medtage, hvis du ikke vil placere den indenfor en eksisterende script-blok ...

-- og da det hverken betyder intet, hvor du placerer ovenstående, kan du jo ligesågodt placere den i samme scriptblok, som du ellers benytter, f.eks. i et eksternt .js-dokument !-)
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