Menar du att nedanstående skall ändras så att href-värdet öppnas på två olika ställen?
TARGET=\""+geTargetKod('lank')+"\"
11 svar · 336 visningar · startad av Mira
Jag har ett javasacript (färdigt script) som gör en dropdownmeny.
I koden skriver man vilken target länkarna ska ha.
Nu skulle jag vilja kunna välja 2 olika target-möjligheter.
Hur får jag in det i koden?
Det här är koden som skriver ut länken:
skrivUtDetta+=
("<TR><TD HEIGHT='"+varjeLanksHojd+"' "+styleForTDelement+" onClick=
\""+geTargetKod('javascript', eval("meny"+i+"lankar["+j+"]"))
+"\" onMouseOver=\"this.style.backgroundColor='"+menyerFargMedMus+"'\"
onMouseOut=\"this.style.backgroundColor=''\">
<A HREF=\""+eval("meny"+i+"lankar["+j+"]")+"\" TARGET=\""+geTargetKod('lank')+"\"
CLASS='menyLankClass'><IMG SRC='"+bildSida+"' BORDER=0 HEIGHT="+bildSidaHojd+"
WIDTH="+bildSidaBredd+" VSPACE=0 HSPACE=0>
"+eval("meny"+i+"rubriker["+j+"]")+"</A></TD></TR>")
Säg till om det behövs mer kod för att förstå.
Menar du att nedanstående skall ändras så att href-värdet öppnas på två olika ställen?
TARGET=\""+geTargetKod('lank')+"\"
Inte samma href, utan olika för de 7 olika länkarna jag har.
Några ska öppnas på _blank, några i en frame.
Alltså behöver jag kunna ange hur varje länk ska öppnas - i target1 eller target2.
Target anges såhär: menyTarget="_blank";
Och länkarna såhär:
meny1lankar=new Array(
"xxx1.htm",
"xxx2.htm",
"xxx3.htm",
"xxx4.htm");
Om vi kopplar meny1lankar[x] med menytarget[x], like so:
meny1lankar = new Array("xxx1.htm", "xxx2.htm", "xxx3.htm");
menytarget = new Array("frame1", "_blank", "frame2");
xxx1.htm öppnas alltså i frame1, xxx2.htm i ett nytt fönster o.s.v. Och sedan:
skrivUtDetta+=
("<TR><TD HEIGHT='"+varjeLanksHojd+"' "+styleForTDelement+" onClick=
\""+geTargetKod('javascript', eval("meny"+i+"lankar["+j+"]"))
+"\" onMouseOver=\"this.style.backgroundColor='"+menyerFargMedMus+"'\"
onMouseOut=\"this.style.backgroundColor=''\">
<A HREF=\""+eval("meny"+i+"lankar["+j+"]")+"\" TARGET=\""+[b]menytarget[j][/b]+"\"
CLASS='menyLankClass'><IMG SRC='"+bildSida+"' BORDER=0 HEIGHT="+bildSidaHojd+"
WIDTH="+bildSidaBredd+" VSPACE=0 HSPACE=0>
"+eval("meny"+i+"rubriker["+j+"]")+"</A></TD></TR>")
Ute och cyklar?
Nä, det blir något fel.
Felmeddelandet säger att "_blank är odefinierad" och så pekar den på det ställe där geTargetKod är angivet.
Testade även att låta geTargetKod vara kvar, med samma felresultat.
geTargetKod är angiven så här:
function geTargetKod(typ, URL)
{
if (typ == "lank")
{
if (menyTarget == "_blank")
{
return "theNewWindow"
}
else
{
return menyTarget;
}
}
else
{
if (menyTarget == "_top")
{
return "top.location.href='"+URL+"'"
}
else if (menyTarget == "_self")
{
return "self.location.href='"+URL+"'"
}
else if (menyTarget == "_blank")
{
return "oppnaFonster('"+URL+"');"
}
else if ((typeof(eval("parent."+menyTarget))+"").toLowerCase().indexOf("object") != -1)
{ return "parent."+menyTarget+".location.href='"+URL+"'"
}
else if (varningFrameSaknas.length>0)
{
alert(varningFrameSaknas)
varningFrameSaknas="";
}
}
}
Kan du inte bara ange som argument till geTargetKod() var du vill att länken skall öppnas? Alltså:
TARGET=\""+geTargetKod('_blank')+"\"
Och sedan bygga om geTargetKod() litet grand.
Men då öppnas ju alla länkar i -blank.
Eller...?
Vad menar du med bygga om?
Funktionen geTargetKod anger väl bara hur target-koden ska tolkas av scriptet...?
_blank är ju definierat, men något i ditt förslag gör att den inte fattar det...
Så här menar jag (enkelt):
TARGET=\""+geTargetKod('_blank')+"\"
TARGET=\""+geTargetKod('frame1')+"\"
TARGET=\""+geTargetKod('_self')+"\"
function geTargetKod(w){
return w;
}
Fattar inte riktigt var jag ska skriva detta - och vad jag ska ta bort...
Det är förmodligen jag som missuppfattar vad du vill åstadkomma. Om vi startar om från början; varför kan du inte bara skriva exempelvis så här direkt i koden:
TARGET=\"frame1"
TARGET=\"_blank\"
o.s.v?
Radbrytningarna finns bara här, inte i min kod.
Grejen är att skrivUtDetta finns bara i koden 1 gång - alltså kan jag inte skriva flera TARGET där.
Det måste isf anges i new Array - där länkarna är angivna.
Därför trodde jag att ditt första förslag skulle funka, men det är nåt som felas... (obs jag har stavat det menyTarget som det ska vara - så inget fel där heller)
Fast jag tror mer på att geTargetKod ska vara kvar, eftersom menyTarget kopplas in där.
Men, men, det löser inget det heller...