Avatar billede kristianp Nybegynder
15. juni 2001 - 10:41 Der er 8 kommentarer og
1 løsning

Hvad er der galt ??? (kald af javascript i en inkluderet fil)

Denne kode er i en script fil der er inkluderet i html dokumentet

function setmypage(dette) {
        dette.style.behavior = \'url(#default#homepage)\';
        dette.setHomePage(\'http://www.lederne.dk/\');
}

I html dokumentet er der følgende:

<a href=\"#\" onClick=\"setmypage(this);\" title=\"Jeg ønsker denne side som startside\">Jeg ønsker denne side som startside</a>

Og

<A HREF=\"java script:setmypage(this)\" title=\"Jeg ønsker denne side som startside\">Jeg ønsker denne side som startside</a>

Det første link virker fint, men det andet virker ikke, den siger at \"style is null or not an object\"

Hvad er forskellen ??

Det første link er noget jeg selv har skrevet i html dokumenterne, men det er sådan at der er flere tusinde sider der bliver genereret automatisk, og det er den nederste type link den generere. Det eneste jeg selv kan bestemme er hvilken function der skal kaldes, dvs i dette eks fortæller jeg værktøjet at der er setmypage(this) der skal kaldes, og ud af det kommer koden i det nederste eks.

Avatar billede olebole Juniormester
15. juni 2001 - 10:46 #1
<ole>
Prøv:

<A HREF=\"void(java script:setmypage(this));\" title=\"Jeg ønsker denne side som startside\">Jeg ønsker denne side som startside</a>

/mvh
</bole>
Avatar billede kristianp Nybegynder
15. juni 2001 - 10:52 #2
Det virker ikke, den kommer med en
The page cannot be found

Men jeg kan nu heller ikke få den til at generere denne kode. Det jeg selv bstemmer er det der er med x,er

<A HREF=\"java script:xxxxxxxx\">Jeg ønsker denne side som startside</a>

resten er auto genereret


Avatar billede olebole Juniormester
15. juni 2001 - 10:58 #3
Forskellen er, at du i dit første eksempel kalder funktionen med linkets onclick-handler...en handler defineret i HTML-standarden til eksekvering af JavaScript-events.
Det andet af dine eksempler prøver at eksekvere JavaScript\'et via JavaScript-pseudo-protokollen i stedet for at eksekvere en relokering til URL\'en via HTTP-protokollen, som et link normalt arbejder med.
void() er en JavaScript-operator, der eksekverer (eller evaluerer), hvad der står i parentesen - uden at returnere en værdi, browseren vil vise.
/mvh
Avatar billede olebole Juniormester
15. juni 2001 - 11:01 #4
Undskyld...jeg skrev selvfølgelig forkert:

<A HREF=\"java script:void(setmypage(this));\" title=\"Jeg ønsker denne side som startside\">Jeg ønsker denne side som startside</a>

:o))

Iøvrigt: når jeg skriver JavaScript, må du ikke misforstå. Det, du prøver at eksekvere er ikke et JavaScript, men MS\' dårligere klon: JScript.
/mvh
Avatar billede kristianp Nybegynder
15. juni 2001 - 11:07 #5
Ok, det lød avanceret, så meget kender jeg nu ikke til det. Det kan måske ikke lade sig gøre ??

Men den sidste kode virker heller ikke, den giver samme fejl.
Avatar billede olebole Juniormester
15. juni 2001 - 11:18 #6
Hmmmm....jeg bruger selv nødigt JScript, så jeg kender ikke det script, du gerne vil bruge (kun af \'udseende\' her fra Eksperten). Det undrer mig godt nok, du ikke kan eksekvere med \'java script:void()\' i href\'en...!?!
Lad os håbe, en af de andre kommer med et bedre bud, end jeg kunne  ;o)
/mvh
Avatar billede jakoba Nybegynder
15. juni 2001 - 12:26 #7
ku det være du ku \"snyde\" xxxxxxxx strengen i
<A HREF=\"java script:xxxxxxxx\">Jeg ønsker denne side som startside</a>

så den bliver replacet med:
                      void(0)\\\"\\ onclick=\\\"setmypage(this)
til det bliver til:
<A HREF=\"java script:void(0)\" onclick=\"setmypage(this) \">Jeg ønsker denne side som startside</a>

eller måske du kunne give de der links hvert deres navn=\"noget\" parameter så du kan adresseret linket absolut:

<A name=\'noget\' HREF=\"java script:void(setmypage (document.links.noget) )\">Jeg ønsker denne side som startside</a>

Den sidste mulig hed (fjollet, men det virker:) er et lede efter linket på siden. dvs en lille funktion i head:

<script language=\'javascript\'>

function findAndDo ( param ) {
    for (var i=0; i<document.links.length; i++)
        if ( document.links[i].href.indexOf( param ) ) break;
    var dette = document.links[i];
    dette.style.behavior = \'url(#default#homepage)\';
    dette.setHomePage(\'http://www.lederne.dk/\');
}; //end findAndDo( string )

og linket skrives så som:
<A name=\'noget\' HREF=\"java script:void( findAndDo(\'et_unikt_ID\') )\">Jeg ønsker denne side som startside</a>

mvh JakobA

   


Avatar billede jakoba Nybegynder
15. juni 2001 - 12:34 #8
Ups. (som sedvanlig)  if linien i funktionen skal være:
        if ( document.links[i].href.indexOf( param ) > -1 ) break;
Avatar billede kristianp Nybegynder
15. juni 2001 - 12:48 #9
Løsningen med
<A HREF=\"java script:void(0)\" onclick=\"setmypage(this) \">Jeg ønsker denne side som startside</a>
virker bare fint.

Derudover fandt jeg ud af at jeg kunne bestemmer
<A HREF=\"xxxxxxxx\">Jeg ønsker denne side som startside</a>

og her kunne jeg sætte
#\" onClick=\"setmypage(this);
istedet for x\'erne, det virkede fint.


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