Avatar billede younk-dk Nybegynder
10. juli 2007 - 12:05 Der er 5 kommentarer og
3 løsninger

Key capture

<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
var SpecialWord = "skippreload",
    SpecialUrl = "index2.htm",
    SpecialLetter = 0;
function getKey(keyStroke) {
var isNetscape=(document.layers);
// Cross-browser key capture routine couresty
// of Randy Bennett (rbennett@thezone.net)
var eventChooser = (isNetscape) ? keyStroke.which : event.keyCode;
var which = String.fromCharCode(eventChooser).toLowerCase();
if (which == SpecialWord.charAt(SpecialLetter)) {
SpecialLetter++;
if (SpecialLetter == SpecialWord.length) window.location = SpecialUrl;
}
else SpecialLetter = 0;
}
document.onkeypress = getKey;
//  End -->
</script>


Hej jeg har fundet dette smart javascript, det gør at når jeg skriver "skippreload" går den til index2.htm hvilket er dejligt, når jeg skal teste en php side der køre i pop-op. Men så kom jeg til at tænke på om det kan lade sig gøre at have flere af disse små tastetur finter. Så når jeg fx skriver "Galleri" går den til galleri.htm og hvis jeg skriver "admin" går den til adminlogin.php siden.

Jeg håber der er nogle der hurtigt kan rette koden til, da jeg selv har prøvet lidt af hvert, men da jeg ikke er helt vildt god til javascript kan jeg ikke selv komme videre, og så er det jo godt vi har eksperten :D

Tak
Avatar billede helle_fred Nybegynder
10. juli 2007 - 16:13 #1
<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
var SpecialWord = "admin",
    SpecialUrl = "adminlogin.php",
    SpecialLetter = 0;
function getKey(keyStroke) {
var isNetscape=(document.layers);
// Cross-browser key capture routine couresty
// of Randy Bennett (rbennett@thezone.net)
var eventChooser = (isNetscape) ? keyStroke.which : event.keyCode;
var which = String.fromCharCode(eventChooser).toLowerCase();
if (which == SpecialWord.charAt(SpecialLetter)) {
SpecialLetter++;
if (SpecialLetter == SpecialWord.length) window.location = SpecialUrl;
}
else SpecialLetter = 0;
}
document.onkeypress = getKey;
//  End -->
</script>
Avatar billede younk-dk Nybegynder
10. juli 2007 - 16:42 #2
Jeg kan godt selv finde ud af at skifte siden og ordet ud... Det jeg gerne vil have er at der er flere ord, der føre til andre sider. Så jeg både kan skrive Admin og Skippreload og Galleri.
Avatar billede cpufan Juniormester
10. juli 2007 - 19:30 #3
<!-- Jeg vil tro dette kan gøre det - det er dog utestet -->


<!-- Begin
var SpecialWord = "skippreload",
    SpecialUrl = "index2.htm",
    SpecialWord1 = "galleri",
    SpecialUrl1 = galleri.htm",
    SpecialWord2 = "admin",
    SpecialUrl2 = "admin.htm",
    SpecialLetter = 0;
function getKey(keyStroke) {
var isNetscape=(document.layers);
// Cross-browser key capture routine couresty
// of Randy Bennett (rbennett@thezone.net)
var eventChooser = (isNetscape) ? keyStroke.which : event.keyCode;
var which = String.fromCharCode(eventChooser).toLowerCase();
if (which == SpecialWord.charAt(SpecialLetter)) {
SpecialLetter++;
if (SpecialLetter == SpecialWord.length) window.location = SpecialUrl;
}
//else SpecialLetter = 0;
}
if (which == SpecialWord1.charAt(SpecialLetter)) {
SpecialLetter++;
if (SpecialLetter == SpecialWord1.length) window.location = SpecialUrl1;
}
//else SpecialLetter = 0;
}
if (which == SpecialWord2.charAt(SpecialLetter)) {
SpecialLetter++;
if (SpecialLetter == SpecialWord2.length) window.location = SpecialUrl2;
}
//else SpecialLetter = 0;
}
if (SpecialLetter > SpecialWord2.length && SpecialLetter > SpecialWord1.length && SpecialLetter > SpecialWord.length)
{
SpecialLetter = 0;
}
document.onkeypress = getKey;
//  End -->
</script>
Avatar billede helle_fred Nybegynder
11. juli 2007 - 11:48 #4
indtast parvis: specialwords og tilhørende spring-adresser<p>
start forfra ved at taste x<p>
oder dabai: hvis starten af et special-word er det samme som <p>hele et andet special-word - vil det korte ord blive valgt :-(

<SCRIPT LANGUAGE="JavaScript">
var s_input=""
var gaa=""
var SpecialWordsAndAdresses=new Array("sp1","sp1.htm","sp22","sp22.htm","sp333","sp333.htm")

function specialWord(word,address){
this.word = word; this.address=address
}
var specialWords=new Array();
var i=0
var w=1
while(w<=SpecialWordsAndAdresses.length/2) {
    var o=new specialWord(SpecialWordsAndAdresses[i],SpecialWordsAndAdresses[i+1])
    specialWords[w]=o
    i=i+2
    w=w+1
}

function getKey(keyStroke) {
var isNetscape=(document.layers);
// Cross-browser key capture routine couresty
// of Randy Bennett (rbennett@thezone.net)
var eventChooser = (isNetscape) ? keyStroke.which : event.keyCode;
var which = String.fromCharCode(eventChooser).toLowerCase();
    if (which=="x") s_input=""; else s_input=s_input+which

    var i=1
    while (i<=specialWord.length){
            if (s_input==specialWords[i].word) gaa=specialWords[i].address
        i=i+1
    }
    if (gaa!="") {alert(gaa); window.location=gaa}
   
}

document.onkeypress = getKey;
//  End -->
</script>
Avatar billede helle_fred Nybegynder
11. juli 2007 - 14:13 #5
og så den pæne:

vh Helle :-)

Special words in this example: sp1, sp22 and sp333. Delete-character: "x" and limit for length of special words: 8

<script>

// SpecialWord-data: pairs of words and addresses
var SpecialWordsAndAdresses=new Array("sp1","sp1.htm","sp22","sp22.htm","sp333","sp333.htm")
// SpecialWord-data's limit-length:
var limit=8
var del="x"
var s_input=""
var gaa=""

// SpecialWord Class
function specialWord(word,address){
this.word = word; this.address=address}

// Array for SpecialWord-objects
var specialWords=new Array();
var i=0
var w=1
while(w<=SpecialWordsAndAdresses.length/2) {
    var o=new specialWord(SpecialWordsAndAdresses[i],SpecialWordsAndAdresses[i+1])
    specialWords[w]=o
    i=i+2
    w=w+1}

function getKey(keyStroke) {
    var isNetscape=(document.layers);
// Cross-browser key capture routine couresty
// of Randy Bennett (rbennett@thezone.net)
    var eventChooser = (isNetscape) ? keyStroke.which : event.keyCode;
    var which = String.fromCharCode(eventChooser).toLowerCase();
        if (which==del) s_input=""; else s_input=s_input+which
        if (s_input.length>=limit){alert(s_input+"? No such specialWord!"); s_input=""}
        else{
            // Search array with specialWord objects for input so far
            var i=1
          while (i<=specialWord.length+1){
                if (s_input==specialWords[i].word) gaa=specialWords[i].address
                i=i+1}
        if (gaa!="") {if(confirm(gaa+"?"))window.location=gaa; else {gaa=""; s_input=""}}
    } 
}

document.onkeypress = getKey;
</script>
Avatar billede younk-dk Nybegynder
11. juli 2007 - 16:18 #6
Mange tak. Koden virker, men jeg vil da lige kigge den igennem, og teste den et par gange, så skal du nok på point!
Avatar billede cpufan Juniormester
11. juli 2007 - 16:42 #7
jeg har nu testet (og rettet ;-9) min version, så den også virker.

smid den i head:

<script language="JavaScript" type="text/javascript">

var SpecialWord = "skippreload",
    SpecialUrl = "index2.htm",
    SpecialWord1 = "galleri",
    SpecialUrl1 = "galleri.htm",
    SpecialWord2 = "admin",
    SpecialUrl2 = "admin.htm",
    SpecialLetter = 0;
function getKey(keyStroke) {
var isNetscape=(document.layers);
// Cross-browser key capture routine couresty
// of Randy Bennett (rbennett@thezone.net)
var eventChooser = (isNetscape) ? keyStroke.which : event.keyCode;
var which = String.fromCharCode(eventChooser).toLowerCase();
if (which == SpecialWord.charAt(SpecialLetter)) {
SpecialLetter++;
if (SpecialLetter == SpecialWord.length) window.location = SpecialUrl;
}

if (which == SpecialWord1.charAt(SpecialLetter)) {
SpecialLetter++;
if (SpecialLetter == SpecialWord1.length) window.location = SpecialUrl1;
}

if (which == SpecialWord2.charAt(SpecialLetter)) {
SpecialLetter++;
if (SpecialLetter == SpecialWord2.length) window.location = SpecialUrl2;
}

if (SpecialLetter > SpecialWord2.length && SpecialLetter > SpecialWord1.length && SpecialLetter > SpecialWord.length)
{
SpecialLetter = 0;
}
}
document.onkeypress = getKey;

</script>
Avatar billede younk-dk Nybegynder
11. juli 2007 - 19:33 #8
Da i begge to har lavet mit script korrekt, har jeg besluttet at i deler pointne... Mange tak for hjælpen begge!
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