Avatar billede supermand69 Nybegynder
10. januar 2005 - 22:15 Der er 51 kommentarer og
1 løsning

ændre link

hvordan kan jeg ændre teksten som står i et link?

<a id="mit_link" href="">teksk som skal kunne ændres</a>
Avatar billede thesurfer Nybegynder
10. januar 2005 - 22:22 #1
prøv med:

document.getElementById("mit_link").innerHTML = 'heyheyhey';
Avatar billede thesurfer Nybegynder
10. januar 2005 - 22:23 #2
f.eks. med en onmouseover/onmouseout:

<a id="mit_link" href="" onmouseover="this.innerHTML='heyheyhey';" onmouseout="this.innerHTML='teksk som skal kunne ændres';">teksk som skal kunne ændres</a>

Eller en funktioner..

- Svar.
Avatar billede supermand69 Nybegynder
10. januar 2005 - 22:25 #3
hvordan kan jeg så få det tilbage til det oprindelige? :)
Avatar billede supermand69 Nybegynder
10. januar 2005 - 22:26 #4
hvis det er i en funktion...
Avatar billede thesurfer Nybegynder
10. januar 2005 - 22:27 #5
Hvor aktiverer du det i funktion?
Avatar billede supermand69 Nybegynder
10. januar 2005 - 22:29 #6
funktionen er ikke færdig endnu... håber du kan se hvad jeg vil :)

var expand = new Array;
function expand_div(id, str)
{
    if('undefined' == typeof expand_div[id]) expand_div[id] = false;
   
    var a = document.getElementById('a_'+id);
    var img = document.getElementById('img_'+id);
    var div = document.getElementById('div_'+id);
   
    if(expand[id])
    {
        a.innerHTML = str;
        img.src = 'gfx/button.expand.png';
        div.style.display = 'none';
    }
    else
    {
        img.src = 'gfx/button.contract.png';
        div.style.display = 'block';
    }
   
    expand[id] = !expand[id];
}
Avatar billede thesurfer Nybegynder
10. januar 2005 - 22:31 #7
function vistekst(lnk,msg)
{
  document.getElementById(lnk).innerHTML=msg;
}

du kalder den så med:

<a id="mit_link" href="" onmouseover="vistekst(this.id,'musen er over!'); onmouseout="vistekst(this.id,'Dette er start');>Dette er start</a>
Avatar billede supermand69 Nybegynder
10. januar 2005 - 22:59 #8
kan man ikke gøre det således at man ikke skal skrive den oprindelige tekst i sin funktion?
Avatar billede thesurfer Nybegynder
10. januar 2005 - 23:04 #9
Du kan sikket lave det via en array.. kigger lige på det..
Avatar billede thesurfer Nybegynder
10. januar 2005 - 23:08 #10
Eksempel:

<script type="text/JavaScript">

ov = new Array();
ou = new Array();

ov[1] = "heyheyhey";
ou[1] = "Dette er start";

ov[2] = "noget andet";
ou[2] = "dette er starten på et anden link";


function vis(lid,o,arr)
{
document.getElementById(lid).innerHTML = eval(o + '[' + arr + ']');
}

</script>

<a id="mit_link" href="" onmouseover="vis(this.id,'ov',1);" onmouseout="vis(this.id,'ou',1);">Dette er start</a>


Det kan naturligvis gøres smarterer.. men er det noget i den stil?
Avatar billede thesurfer Nybegynder
10. januar 2005 - 23:09 #11
ov = over = onmouseover
ou = out = onmouseout
Avatar billede supermand69 Nybegynder
10. januar 2005 - 23:14 #12
lige en ting mere... med den seneste funktion er det så lovligt bare at kalde den med den ene var? altså at undlade at sende de sidste to med?

eks.
vis(noget)
Avatar billede thesurfer Nybegynder
10. januar 2005 - 23:18 #13
Nej, det er jeg ved at arbejde på..
Den skal vide 3 ting:
1) hvilket id
2) om det er onmouseover eller om det onmouseout
3) hvilken besked, afhængigt af #2

Jeg prøver at se, om man ikke kan nøjes med at sende this.id ..
Avatar billede supermand69 Nybegynder
10. januar 2005 - 23:20 #14
nej, det var ikke så meget lige denne her funktion jeg tænkte på :)

bare sådan generelt hvis man i selve funktionen angiver f.eks. 3 variabler.. skal de så alle 3 kaldes når man skriver funktionen?

eller kan man gøre noget ala det her:
function min_func(var1, var2 = 0, var3 = 9) {
// noget
}
Avatar billede thesurfer Nybegynder
10. januar 2005 - 23:24 #15
Nej, det behøver man ikke.
Avatar billede supermand69 Nybegynder
10. januar 2005 - 23:27 #16
man kan altså bare nøjes med at gøre således?

vis(noget)

function vis(var1, var2, var3) {
}
Avatar billede thesurfer Nybegynder
10. januar 2005 - 23:28 #17
Ja.

Eksempel med begge funktioner:


<script type="text/JavaScript">

ov = new Array();
ou = new Array();

ov[1] = "heyheyhey";
ou[1] = "Dette er start - link id 1";

ov[2] = "noget andet";
ou[2] = "Dette er start - link id 1";


function vis(lid,arr)
{

el = document.getElementById(lid);

if (el.innerHTML == ov[arr]) {
  el.innerHTML = ou[arr];
} else {
  el.innerHTML = ov[arr];
}

}

function vis_arr(lid,a,v,s)
{
elm = document.getElementById(lid);
lnkid = elm.id;
lnkid = lnkid.substring(lnkid.indexOf("arr") + "arr".length);

if (elm.innerHTML == ov[lnkid]) {
  elm.innerHTML = ou[lnkid];
} else {
  elm.innerHTML = ov[lnkid];
}

//alert(lnkid);
}

</script>

<!-- bruges med funktionen "vis" -->
<a id="mit_link" href="" onmouseover="vis(this.id,1);" onmouseout="vis(this.id,1);">Dette er start</a>

<!-- bruges med funktionen "vis_arr" -->
<br><br>vis_arr:&nbsp;
<br>
<a id="mit_link_arr1" href="" onmouseover="vis_arr(this.id);" onmouseout="vis_arr(this.id);">Dette er start - link id 1</a>
<br>
<a id="mit_link_arr2" href="" onmouseover="vis_arr(this.id);" onmouseout="vis_arr(this.id);">Dette er start - link id 2</a>
Avatar billede thesurfer Nybegynder
10. januar 2005 - 23:29 #18
Glemte forklaringen :-)

Det vigtige er "arrX" (hvor X er id-nummeret) i id'en:

<a id="....arrX"...>
Avatar billede supermand69 Nybegynder
10. januar 2005 - 23:34 #19
thx :)

jeg har så lige en enkelt anden version af den samme version hvor jeg laver en onload på min knap

function fix_png(myImage)
{
    if(document.all)
    {
        var imgID = (myImage.id) ? "id='" + myImage.id + "' " : "";
        var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : "";
        var imgStyle = "display:inline-block;" + myImage.style.cssText;
        if(myImage.parentElement.href) imgStyle += "cursor:hand;cursor:pointer";
        var strSpan = "<span " + imgID + imgClass
            + " style=\"" + "width:" + myImage.width + "px; height:" + myImage.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>";
        myImage.outerHTML = strSpan;
    }
}

var expand = new Array;
function expand_div(id)
{
    if('undefined' == typeof expand_div[id]) expand_div[id] = false;
   
    var img = document.getElementById('img_'+id);
    var div = document.getElementById('div_'+id);
   
    if(expand[id])
    {
        img.src = 'gfx/button.expand.png';
        div.style.display = 'none';
    }
    else
    {
        img.src = 'gfx/button.contract.png';
        div.style.display = 'block';
    }
   
    expand[id] = !expand[id];
}

<a href="java script:expand_div('chat_func')"><img id="img_chat_func" src="gfx/button.expand.png" onload="fix_png(this)"></a>

her skifter den ikke min img ud... nok pga den onload der?!
Avatar billede supermand69 Nybegynder
10. januar 2005 - 23:35 #20
ups.. det jeg mente var

jeg har så lige en lidt anden version af den samme funktion hvor jeg har en img som knap med en onload...
Avatar billede thesurfer Nybegynder
10. januar 2005 - 23:36 #21
Hvis du kun har 1 (eller 2) af de der fix_png-kald, smid den i body:

<body onload="fix_png('img_chat_func');">

Jeg mener at "onload" i img-tags, er en Internet Explorer-ting.. er ikke helt sikker..
Avatar billede thesurfer Nybegynder
10. januar 2005 - 23:37 #22
..og så ville jeg hellere bruge:

<a href="#" onclick="fix_png(this);return false">...</a>

Men helst i body-tag'et :-)
Avatar billede supermand69 Nybegynder
10. januar 2005 - 23:45 #23
jeg bruger den fix en del steder faktisk... mange flere gang end 2 :p

kan man ikke lave noget fusk i min expand_div() så den nærmest deri "reloader" min onload i min img?
Avatar billede supermand69 Nybegynder
10. januar 2005 - 23:46 #24
ang. det med at onload i img-tags er noget IE er også helt fint... for det er også kun i IE at den skal køre den onload... pga transparency ;)
Avatar billede thesurfer Nybegynder
10. januar 2005 - 23:48 #25
reloader din onload? det eneste din onload gør, er fix_png(this)

Hvis du vil, kan du lavet en liste med dine fix_png:

fix_png(1);
fix_png(2);
fix_png(3);

hvor tallet er id'erne på dine billeder..
Avatar billede thesurfer Nybegynder
10. januar 2005 - 23:49 #26
heh.. du har ikke lagt mærke, til den der copy&paste fejl jeg lavede :-)
Avatar billede supermand69 Nybegynder
10. januar 2005 - 23:54 #27
hvilken fejl? :p
Avatar billede thesurfer Nybegynder
10. januar 2005 - 23:57 #28
siger jeg ikke :-)
Avatar billede supermand69 Nybegynder
11. januar 2005 - 00:05 #29
hehe...

men jeg har lige lavet lidt om på det, men det ser lidt forkert ud når jeg laver en ny fix_png()

http://temp.electrobeat.dk/tst under chat.. "Chatfunktioner"
login: test // test

var expand = new Array;
function expand_div(id)
{
    if('undefined' == typeof expand_div[id]) expand_div[id] = false;
   
    var img = document.getElementById('img_'+id);
    var div = document.getElementById('div_'+id);
   
    if(expand[id])
    {
        img.src = 'gfx/button.expand.png';
        div.style.display = 'none';
        fix_png(img);
    }
    else
    {
        img.src = 'gfx/button.contract.png';
        div.style.display = 'block';
        fix_png(img);
    }
   
    expand[id] = !expand[id];
}
Avatar billede thesurfer Nybegynder
11. januar 2005 - 00:09 #30
er det en IE-only side?
Avatar billede supermand69 Nybegynder
11. januar 2005 - 00:11 #31
nej... men den bliver ikke vist helt korrekt i firefox :(
Avatar billede thesurfer Nybegynder
11. januar 2005 - 00:33 #32
Måske skal billederne bare preloades..

<script type="text/JavaScript">
image1 = new Image();
image1.src = "gfx/button.expand.png";

image2 = new Image();
image2.src = "gfx/button.contract.png";
</script>
Avatar billede supermand69 Nybegynder
11. januar 2005 - 16:25 #33
altså sådan her?

var expand = new Array;
function expand_div(id)
{
    if('undefined' == typeof expand_div[id]) expand_div[id] = false;
   
    var img = document.getElementById('img_'+id);
    var div = document.getElementById('div_'+id);
   
    if(expand[id])
    {
        new_img = new Image();
        new_img.src = "gfx/button.expand.png";
        img.src = 'gfx/button.expand.png';
        div.style.display = 'none';
        fix_png(img);
    }
    else
    {
        new_img = new Image();
        new_img.src = "gfx/button.contract.png";
        img.src = 'gfx/button.contract.png';
        div.style.display = 'block';
        fix_png(img);
    }
   
    expand[id] = !expand[id];
}
Avatar billede thesurfer Nybegynder
11. januar 2005 - 21:33 #34
Nej.

Preload-scriptet kan stå alene, og før dine funktioner (behøver vist ikke at være før)..
Avatar billede supermand69 Nybegynder
11. januar 2005 - 21:36 #35
kan det ikke implementeres i min funktion som jeg har forsøgt der? :)
Avatar billede thesurfer Nybegynder
11. januar 2005 - 21:53 #36
Nej, det skal ikke implementeres i nogen funktioner :-)

Det skal køres når siden loades.. det den gør, er at indlæse billederne så de er klar til brug.. :-)
Avatar billede supermand69 Nybegynder
11. januar 2005 - 21:58 #37
jeg er ikke helt med? hvordan virker den helt præcis?
Avatar billede thesurfer Nybegynder
11. januar 2005 - 22:03 #38
1) Scriptet indsættes på den side, hvor billederne er.
2) Det skal bare stå alene, dvs det skal IKKE implementeres i en funktion

Det er bare det :-)

#1: Du kan også bare indsættes scriptet på din første side (eller menuen), så billederne indlæses/caches (dvs ligger lokalt = på din computer = hurtigt load) og er klar til brug.
Avatar billede supermand69 Nybegynder
11. januar 2005 - 22:03 #39
hvordan kan jeg så via javascript skrive billederne til siden.. for at min fix_png kan vise billederne skal de være vist før?! det var det problem jeg havde før :(

write.document ???
Avatar billede thesurfer Nybegynder
11. januar 2005 - 22:03 #40
Det skal ikke vises! :-)
Det skal bare loades... og så bruge du dine fix_png funktioner, hvis det er nødvendigt..

Prøv det.
Avatar billede supermand69 Nybegynder
11. januar 2005 - 22:08 #41
img_expand = new Image();
img_expand.src = gfx/button.expand.png';

img_contrac = new Image();
image2.src = 'gfx/button.contract.png';

var expand = new Array;
function expand_div(id)
{
    if('undefined' == typeof expand_div[id]) expand_div[id] = false;
   
    var img = document.getElementById('img_'+id);
    var div = document.getElementById('div_'+id);
   
    if(expand[id])
    {
        img.src = img_expand;
        div.style.display = 'none';
        fix_png(img);
    }
    else
    {
        img.src = img_contract;
        div.style.display = 'block';
        fix_png(img);
    }
   
    expand[id] = !expand[id];
}
Avatar billede supermand69 Nybegynder
11. januar 2005 - 22:10 #42
var lidt for hurtig


img_expand = new Image();
img_expand.src = 'gfx/button.expand.png';

img_contract = new Image();
img_contract.src = 'gfx/button.contract.png';

var expand = new Array;
function expand_div(id)
{
    if('undefined' == typeof expand_div[id]) expand_div[id] = false;
   
    var img = document.getElementById('img_'+id);
    var div = document.getElementById('div_'+id);
   
    if(expand[id])
    {
        img.src = img_expand;
        div.style.display = 'none';
        fix_png(img);
    }
    else
    {
        img.src = img_contract;
        div.style.display = 'block';
        fix_png(img);
    }
   
    expand[id] = !expand[id];
}
Avatar billede thesurfer Nybegynder
11. januar 2005 - 22:13 #43
Ja, det ser fint ud.. virker det?
Avatar billede thesurfer Nybegynder
11. januar 2005 - 22:16 #44
prøv at smide preload-scriptet i dit <head> </head>
Avatar billede supermand69 Nybegynder
11. januar 2005 - 22:19 #45
kan jeg lave den sådan her? sammen med min js fil?

<script src="req/javascripts.js" language="javascript" type="text/javascript">
img_expand = new Image();
img_expand.src = 'gfx/button.expand.png';

img_contract = new Image();
img_contract.src = 'gfx/button.contract.png';
</script>
Avatar billede supermand69 Nybegynder
11. januar 2005 - 22:21 #46
det er det samme som hvis jeg smider den i min js fil :(

der er åbenbart ikke så meget at gøre ved det... desværre
Avatar billede thesurfer Nybegynder
11. januar 2005 - 22:21 #47
så prøv med hele urls.. dvs, http://.....png i stedet for bare gfx/...png
Avatar billede supermand69 Nybegynder
11. januar 2005 - 22:36 #48
heller ikke :(

jeg må vel bare prøve at lave en div mere med knappen som der skiftes mellem... og så se om det hjælper

men tak for hjælpen :)
Avatar billede supermand69 Nybegynder
11. januar 2005 - 23:16 #49
forresten.. jeg har lige en ting...

grunden til at det ikke virker, kan det ikke være at der bare bliver lavet en ny <span> oveni den gamle og den derfor bliver lidt fucked? kan man ikke på en måde slette den <span> som er der i forvejen?
Avatar billede thesurfer Nybegynder
12. januar 2005 - 16:47 #50
hmm... hvorfor bliver der lavet et nyt span?
Det eneste der skal ske, er jo at skifte billedet.. eller hva'?
Avatar billede supermand69 Nybegynder
12. januar 2005 - 17:39 #51
jeg har lavet et nyt spm og har lavet en test side hvor det hele er lidt mere overskueligt :)

http://www.eksperten.dk/spm/580028
Avatar billede supermand69 Nybegynder
12. januar 2005 - 17:46 #52
men jeg får en anden lille fejl nu... hvis du lige gider lure på det? :)

du skal lige være logget på for at kunne se det... hehe

line: 217
char: 1
code: 0
url: http://temp.electrobeat.dk/tst/iframe.rightmenu.php
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