Avatar billede kmx Nybegynder
26. maj 2000 - 14:34 Der er 24 kommentarer og
2 løsninger

Text streng

Opgave: Lav en funktion, som tager en textstreng i en variabel og korter den af til en angivet værdi (antal chars)
F.eks.
function text (variabel,chars)
osv.

Funktionen skal outputte den forkortede textstreng, samt vise hele den originale streng i et layer ved mouseover.

Tidshorisont max 1 dag!!!
Avatar billede olebole Juniormester
26. maj 2000 - 14:40 #1
mouseover på hvad?
Avatar billede kmx Nybegynder
26. maj 2000 - 15:03 #2
Mouseover på den forkortede textstreng.


Ved hurtigt svar giver jeg op til 300 point ekstra!!!
Avatar billede tlist Nybegynder
26. maj 2000 - 15:37 #3
Noget ligende det her ????

<BODY>
<div id=MyLayer style="position:absolute;left:100;top:100;">
</div>
<SCRIPT LANGUAGE=javascript>
<!--
    var oldies = new Array()
    var oldiescount = 0;
    function Nothing(str, end, start){       
        oldies[oldiescount] = str;
        oldiescount++;
        Output = "<SPAN ID=MyID" + Nothing.count + " onmouseover=\"dolayeronmouseover(" + Nothing.count + ")\">";
        Nothing.count++;
        if (!start){
            Output += str.slice(0,end);
        }
        else{
            Output += str.slice(start,end);
        }
        Output += "</SPAN>"
        return Output
    }
   
    Nothing.count = 0;
   
    function dolayeronmouseover(oldienum){
        if (oldies[oldienum]){
            MyLayer.innerHTML = oldies[oldienum]
        }
    }
    document.write(Nothing("thisismylife1",7,1),"<br>")
    document.write(Nothing("thisismylife2",9,4),"<br>")
    document.write(Nothing("thisismylife3",10,5),"<br>")
    document.write(Nothing("thisismylife4",3),"<br>")
//-->
</SCRIPT>
</BODY>
Avatar billede kmx Nybegynder
26. maj 2000 - 15:43 #4
Tilføj en mouseout og placer layer så originalstrengen starter på samme linje som den forkortede streng. Så er den hjemme!!!
Avatar billede kmx Nybegynder
26. maj 2000 - 15:45 #5
Eller så teksten helt dækker...?
Avatar billede tlist Nybegynder
26. maj 2000 - 15:54 #6
Det ordner du da lige selv med et par keystrokes...
Avatar billede olebole Juniormester
26. maj 2000 - 15:56 #7
<ole>

<html>
<head>
<script language="JavaScript"><!--

// --------- ret her ----------------
var str = "abcdefghijklmn";
var myLength = 5;
// ----------------------------------

var ie = document.all;
var ns = document.layers;

newStr = str.substring(myLength,str.length);
myStr = "<a href='#' onmouseover=tellMe(str) class=clLink>"+newStr+"</a>";

function tellMe(which){
    if (ie) {
    mydiv.innerHTML = which;
    }else if (ns){
        document.mydiv.document.open();
        document.mydiv.document.write(which);
        document.mydiv.document.close();
       
    }
}

//-->
</script>
<style type="text/css">
A.clLink{text-decoration:none; color:black}
#mydiv{position:absolute; left:200; top:50;}
</style>
</head>
<body bgcolor=white>

<div id="mydiv"></div>
<a href="java script:tellMe(myStr);">Test her</a>

</body>
</html>

</bole>
Avatar billede olebole Juniormester
26. maj 2000 - 15:58 #8
Du retter bare 'myLength' til den længde, du havde tænkt dig og str til din streng.
Plain and simple!
/Vh
Avatar billede tlist Nybegynder
26. maj 2000 - 16:10 #9
Hvis du bare vil have dem til at skifte er det her nemmere...

    var StringList = new Array()
    var StringListCount = 0;
    StringList[0] = new Array(3)
    StringList[0][0] = "this is my life1";
    StringList[0][1] = 7;
    StringList[0][2] = 1;
    StringListCount++;
    StringList[1] = new Array(3)
    StringList[1][0] = "this is my life2";
    StringList[1][1] = 9;
    StringList[1][2] = 4;
    StringListCount++;
    StringList[2] = new Array(3)
    StringList[2][0] = "this is my life3";
    StringList[2][1] = 10;
    StringList[2][2] = 5;
    StringListCount++;
    StringList[3] = new Array(3)
    StringList[3][0] = "this is my life4";
    StringList[3][1] = 3;
    StringList[3][2] = null;
    StringListCount++;
   
    function WriteStrings(){
        for (i=0;i<StringListCount;i++){
            document.write("<SPAN onmouseover=ExpandString(" + i + ") onmouseout=CutString(" + i + ")>" + (StringList[i][0].slice(StringList[i][2],StringList[i][1])) + "</SPAN><br>")
        }
    }

    function CutString(ID){
        event.srcElement.innerHTML = StringList[ID][0].slice(StringList[ID][2],StringList[ID][1])
    }
   
    function ExpandString(ID){
        event.srcElement.innerHTML = StringList[ID][0]
    }
   
    WriteStrings()
Avatar billede olebole Juniormester
26. maj 2000 - 16:23 #10
Til mit svar:
Hvis du vil have første del af grundstrengen i stedet, retter du til:
newStr = str.substring(0,myLength);
/Vh
Avatar billede olebole Juniormester
26. maj 2000 - 16:36 #11
tlist >> Hvorfor laver du ikke dine scripts X-browser...?
Avatar billede tlist Nybegynder
26. maj 2000 - 16:49 #12
olebole >> Hvorfor dog det ... Det står der jo ikke noget om :-) Real deal: Det er nemmere og hurtigere at få en forståelse af problemet (for mig) hvis jeg kun laver det ie derefter kan man jo bekymre sig on alle de andre... :-)
Avatar billede olebole Juniormester
26. maj 2000 - 16:53 #13
Men det får kmx jo ikke noget ud af...ufærdigt arbejde!  ;-))
Avatar billede olebole Juniormester
26. maj 2000 - 17:36 #14
Her kan du først vælge en streng og derefter trykke 'test' og lave mouseover:

<html>
<head>
<script language="JavaScript"><!--
var str = new Array();

// --------- ret her ----------------
str[0] = "abcdefghijklmn";
str[1] = "noget blabla";
str[2] = "noget mere blabla";
str[3] = "noget endnu mere blabla";
var myLength = 5;
// ----------------------------------

var ie = document.all;
var ns = document.layers;
var newStr;
var myStr;

function setStr(whichStr) {
    satStr = str[whichStr];
    newStr = satStr.substring(0,myLength);
    myStr = "<a href='#' onmouseover=tellMe(satStr) class=clLink>"+newStr+"</a>";
}

function tellMe(which){
    if (ie) {
    mydiv.innerHTML = which;
    }else if (ns){
        document.mydiv.document.open();
        document.mydiv.document.write(which);
        document.mydiv.document.close();
       
    }
}

//-->
</script>
<style type="text/css">
A.clLink{text-decoration:none; color:black}
#mydiv{position:absolute; left:200; top:50;}
</style>
</head>
<body bgcolor=white>

<div id="mydiv"></div>
<a href="java script:setStr('0');">V&aelig;lg streng '0'</a><br>
<a href="java script:setStr('1');">V&aelig;lg streng '1'</a><br>
<a href="java script:setStr('2');">V&aelig;lg streng '2'</a><br>
<a href="java script:setStr('3');">V&aelig;lg streng '3'</a><br><br>
<a href="java script:tellMe(myStr);">Test her</a>

</body>
</html>

/Vh
Avatar billede kmx Nybegynder
29. maj 2000 - 11:59 #15
Øhhh... er det ikke ved at tage overhånd nu???

Jeg vil bare gerne have noget der viser ved mouseover og skjuler ved mouseout.

Layer skal placeres over / ved siden af den streng man kører musen hen over.
Ikke noget med at vælge, klikke eller noget som helst.

Det ser sgu ellers godt ud drenge, men jeg har ikke tid til selv at gå ind og rette i lortet. Bl.a fordi mit kendskab til JavaScript endnu ligger på et frimærke.
Avatar billede tlist Nybegynder
29. maj 2000 - 12:09 #16
olebole >> Det var / er min mening at dette er et forum for "problem breakers" ikke "problem solvers" :-)) Derfor det ufærdige arbejde. :-)
Avatar billede olebole Juniormester
29. maj 2000 - 18:45 #17
Netop DET er en god pointe! ;-))
Derfor er det vel også et uafvigeligt 'must' at vise, hvordan de to hovedbrowsere skal have koden serveret forskelligt, grundet deres temmelig forskellige DOM. Resten er 'flødeskum' for folket ;-))

kmx >> Du har fået et komplet svar på netop det i
mit svar fra:  26-05-00 15:56:49
plus:  26-05-00 16:23:18

/Vh
Avatar billede kmx Nybegynder
30. maj 2000 - 11:41 #18
HRRRMMMPPHH!!!!

Hvorfor virker det så ikke...?
Avatar billede olebole Juniormester
30. maj 2000 - 19:10 #19
Jamen, det gør det da også...! Hvad er det, du ikke kan få til at virke? Hvordan opfører det sig?
Tryk på linket 'Test her' og der skrives: 'abcde'. Lav en mouseover på disse fem bogstaver og der skrives: 'abcdefghijklmn'. Det sker i begge browsere.
/Vh
Avatar billede olebole Juniormester
30. maj 2000 - 19:11 #20
For en sikkerheds skyld er her den samlede kode med rettelsen, jeg beskrev ovenfor:

<html>
<head>
<script language="JavaScript"><!--
// --------- ret her ----------------
var str = "abcdefghijklmn";
var myLength = 5;
// ----------------------------------
var ie = document.all;
var ns = document.layers;
newStr = str.substring(0,myLength);
myStr = "<a href='#' onmouseover=tellMe(str) class=clLink>"+newStr+"</a>";
function tellMe(which){
    if (ie) {
    mydiv.innerHTML = which;
    }else if (ns){
        document.mydiv.document.open();
        document.mydiv.document.write(which);
        document.mydiv.document.close();
       
    }
}
//-->
</script>
<style type="text/css">
A.clLink{text-decoration:none; color:black}
#mydiv{position:absolute; left:200; top:50;}
</style>
</head>
<body bgcolor=white>
<div id="mydiv"></div>
<a href="java script:tellMe(myStr);">Test her</a>
</body>
</html>
Avatar billede kmx Nybegynder
31. maj 2000 - 10:41 #21
Fint olebole, men det virker bare først når jeg klikker på den.
Er det miningen eller er det min browser IE5.5 der fucker alt op...?
Avatar billede olebole Juniormester
31. maj 2000 - 10:53 #22
Skal vi ikke ta' og ændre det til, at det er MIG, der fucker alt op i IE5.5...Hvem fanden er det her, der altid kæfter op om X-browser-kodning...?!?...Hehe! (Schh!...Hør lyden af røde ører, der blafrer!).
Lav denne linie:
    mydiv.innerHTML = which;
om til:
    document.all.mydiv.innerHTML = which;
;-))
Avatar billede kmx Nybegynder
31. maj 2000 - 11:24 #23
Tror du mig hvis jeg siger at det stadig ikke virker...?

Nå hva faen... Nu gider jeg snart ikke det her mere...

Jeg får nogle andre til at lave det sidste, men mange tak ole.
Du får et par point senere.
(Du får lige chancen for at få det til at virke)
Avatar billede olebole Juniormester
31. maj 2000 - 11:48 #24
Det her er sidste bud (...?!?...):
    myStr = "<a href='#' onmouseover='tellMe(str);return true;' class=clLink>"+newStr+"</a>";
Det fungerer som sagt fint på MacG3 / IE5.0.
Avatar billede olebole Juniormester
31. maj 2000 - 13:01 #25
Takker, men fik du det til at virke?  ;-)
Avatar billede kmx Nybegynder
31. maj 2000 - 13:26 #26
Sorry, det her forbandede PC-monster-shit gik ned (igen).

Nej jeg fik det ikke til at virke, men jeg mente at din ihærdighed skulle belønnes...

50 points gik til tlist for det hurtige svar, der "næsten" virkede.
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