testa den här:
<input type="button" onclick="document.getElementById("testdiv").onclick='parent.location.href='http://www.jolian.com''">
<DIV id="testdiv" onclick="parent.location.href='http://www.microsoft.com'">Test</div>
14 svar · 477 visningar · startad av Addeladde
Varför fungerar inte denna kodsnutt:
<input type="button" onclick="testdiv.onclick='parent.location.href='http://www.jolian.com''">
<DIV id="testdiv" onclick="parent.location.href='http://www.microsoft.com'">Test</div>
Jag vill att microsoft adressen ska bytas ut mot jolian adressen
testa den här:
<input type="button" onclick="document.getElementById("testdiv").onclick='parent.location.href='http://www.jolian.com''">
<DIV id="testdiv" onclick="parent.location.href='http://www.microsoft.com'">Test</div>
Funkar inte
Så här ser det ut. Men tyvärr verkar det inte stödjas av IE än, bara Mozilla.
<script language="JavaScript" type="text/javascript">
function setonClickUrl(id,url){
document.getElementById(id).setAttribute("onclick","parent.location.href='"+url+"'");
}
</script>
<form>
<input type="button" onclick="setonClickUrl('testdiv','http://www.jolian.com')">
</form>
<DIV id="testdiv" onclick="parent.location.href='http://www.microsoft.com'">Test</div>
(Det blev så många citat-tecken så jag lade det i en egen funktion.)
Red. funktionen setAttribute() fungerar även i IE, men du verkar inte kunna mata den med något annat än handlers, alltså inga argument.
Okej vad tråkigt! Trodde microsoft var ganska bra på att komma med nya smarta funktioner.
Här är en kodsnutt det jag vill är att kunna klicka på länken <a>
Men det går inte fattar inte varför?
Om det är någon som kan lösa det på något sätt att jag kan byta ut länken i contextmenyn och att de går att klicka på så är jag väldigt tacksam.
<DIV ID="oContextHTML" STYLE="display:none;">
<DIV onmouseover="this.style.background='gold';" onmouseout="this.style.background='#e4e4e4';">
<a href="www.jolian.se">Jolian</a>
</div>
<DIV onmouseover="this.style.background='gold'" onmouseout="this.style.background='#e4e4e4'">
<SPAN onclick="parent.location.href='http://search.microsoft.com'"> Sök</SPAN>
</DIV>
</DIV>
För mig är det omöjligt att klicka på länken så länge Style="display:none" finns. När jag sätter den till vissble så funkar det men då försvinner ju hela iden med att det ska vara en context meny
Eftersom du säger context-meny antar jag att du vill ha den där muspekaren är. Då får du göra <div>'en till ett lager och då ändra på attributet visibility för att göra den synlig;
<body oncontextmenu="document.getElementById('oContextHTML').style.top=Ymouse; document.getElementById('oContextHTML').style.left=Xmouse; document.getElementById('oContextHTML').style.visibility='visible'; return false;">
<script language="JavaScript" type="text/javascript">
var Xmouse=0; var Ymouse=0;
function MoveHandler(evnt) {
if(document.all){
Xmouse = window.event.x+document.body.scrollLeft;
Ymouse = window.event.y+document.body.scrollTop;
} else if(document.getElementById) {
Xmouse = evnt.pageX;
Ymouse = evnt.pageY;
}
}
document.onmousemove = MoveHandler;
</script>
<DIV ID="oContextHTML" STYLE="position:absolute;visibility:hidden;">
<DIV onmouseover="this.style.background='gold';" onmouseout="this.style.background='#e4e4e4';">
<a href="www.jolian.se">Jolian</a>
</div>
<DIV onmouseover="this.style.background='gold'" onmouseout="this.style.background='#e4e4e4'">
<SPAN onclick="parent.location.href='http://search.microsoft.com'"> Sök</SPAN>
</DIV>
</DIV>
Tack nu har jag löst det.
Det jag ville ha var alltså ett script som visade en contextmenu när man klickade på en länk som radades upp från endatabas.
Länken i contextmenyn skulle då ändras för varje ny länk som databasen radade upp. Så att om man högerklicka på exempelvis länk 1 så skulle länken redigera i contextmenyn bytas ut till egenskaper.asp?id<%rs("id")%>
Tack för hjälpen! Postar den färdiga koden här imorgon om det är någon som vill titta på den.
Hej Jag har min kod nu som fungerar nästan som jag vill. En sak till bara! Hur gör jag så att det inte går att klicka på höger musknapp och få upp den vanliga microsoft menyn.
Jag vill inte få upp msmenyn på sidan eller få upp den när jag trycker på högermusknapp i contextmenyn.
Pröva själv så får du se.
Här är koden:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript">
var Xmouse=0; var Ymouse=0;
function MoveHandler(evnt) {
if(document.all){
Xmouse = window.event.x+document.body.scrollLeft;
Ymouse = window.event.y+document.body.scrollTop;
} else if(document.getElementById) {
Xmouse = evnt.pageX;
Ymouse = evnt.pageY;
}
}
document.onmousemove = MoveHandler;
</script>
<style type="text/css">
<!--
.egenskaper {
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
font-style: normal;
font-weight: normal;
color: #000000;
text-decoration: none;
background-color: #D6D6D6;
border-top-width: 0px;
border-right-width: 0px;
border-bottom-width: 1px;
border-left-width: 0px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #000000;
border-right-color: #000000;
border-bottom-color: #000000;
border-left-color: #000000;
}
.rutamenu {
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 0px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #000000;
border-right-color: #000000;
border-bottom-color: #000000;
border-left-color: #000000;
}
-->
</style>
<style type="text/css">
<!--
.lank {
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
font-style: normal;
font-weight: normal;
color: #000000;
text-decoration: none;
}
-->
</style>
</head>
<body onclick="document.getElementById('oContextHTML').style.visibility='hidden'">
<DIV class="rutamenu" ID="oContextHTML" STYLE="position:absolute; visibility:hidden; width: 150;">
<DIV align="left" height="18" class="egenskaper" onmouseover="this.style.background='gold';" onmouseout="this.style.background='#D6D6D6';">
<table width="150" border="0" cellspacing="0" cellpadding="0"><tr style="cursor:hand"> <a border="0" class="lank" name="visaSida" href="www.jolian.se"><td width="19" height="18"><img height="18" border="0" src="admin/bilder/magnify.gif"></td><td width="131" height="18" class="lank"> Visa Sida</td></a></tr></table>
</DIV>
<DIV align="left" height="18" class="egenskaper" onmouseover="this.style.background='gold';" onmouseout="this.style.background='#D6D6D6';">
<table width="150" border="0" cellspacing="0" cellpadding="0"><tr style="cursor:hand"> <a border="0" class="lank" name="tabort" href="www.jolian.se"><td width="19" height="18"><img height="18" border="0" src="admin/bilder/radera.gif"></td><td width="131" height="18" class="lank"> Ta bort sida</td></a></tr></table>
</DIV>
</DIV>
<p> </p>
<%
dim raknare
raknare = 1
do until raknare = 4 %>
<p onmouseover="tabort.href='http://www.idg.se<%=raknare%>'" oncontextmenu="document.getElementById('oContextHTML').style.top=Ymouse; document.getElementById('oContextHTML').style.left=Xmouse; document.getElementById('oContextHTML').style.visibility='visible'; return false;">Klicka här</p>
<% raknare = raknare + 1
loop %>
</body>
</html>
För att gömma context-menyn returnerar du false från eventet oncontextmenu i <body>-taggen (se mitt exempel). Var dock medveten om att det är många (mig själv inräknad) som ogillar denna form av funktionsstympning av webbläsare.
Jag skulle inte gilla den här typen av navigering heller! Men det är ett smidigt sätt att få upp en meny på vad man vill göra med en produkt eller fil i ett administrationsgränssnitt.
När man radar upp från databasen så funkar det inte att klicka högerklicka på de två första länkarna? Alla andra funkar och efter att man har klickat på dem så går det att klicka på de två första.
bifogar koden nedan
<table>
<% DO UNTIL sidorRS.EOF %>
<tr>
<td><img src="../bilder/doc.gif" border="0" height="18"></td>
<td><a name="<%=sidorRS( "sida_id" )%>" class="fillista" onmouseover="tabort.href='http://localhost/admin/sidor/sidhanterare.asp?del=1&sidaID=<%=sidorRS("sida_id")%>'" oncontextmenu="document.getElementById('oContextHTML').style.top=Ymouse; document.getElementById('oContextHTML').style.left=Xmouse; document.getElementById('oContextHTML').style.visibility='visible'; return false;" href="#"><%=sidorRS( "sida_titel" )%></a></td>
</tr>
<%
sidorRS.MoveNext
Loop
%>
</table>
Titta på html-koden som kommer fram till webbläsaren. Att bara titta på ASP-koden säger ingenting om e.v. fel i datakällan som ligger till grund för sidan. Jämför den kod som genereras för de 2 första länkarna med den som genereras för de andra.
Det har jag redan gjort och den är exakt samma.
Det konstiga är att när jag ändrade min contextmeny så att den inte innehöll någon tabell så löste sig allt. Konstigt!