webForumDet fria alternativet

byta ut text i onclick vid tryck på knapp

JavaScriptur Javascript

14 svar · 477 visningar · startad av Addeladde

AddeladdeMedlem sedan jan. 20013 406 inlägg
#1

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

TheefMedlem sedan sep. 2002100 inlägg
#2

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>

AddeladdeMedlem sedan jan. 20013 406 inlägg
#3

Funkar inte

JojoxxMedlem sedan juni 20004 308 inlägg
#4

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.

AddeladdeMedlem sedan jan. 20013 406 inlägg
#5

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>
JojoxxMedlem sedan juni 20004 308 inlägg
#6

Come again?

Förutom att det saknas "http://" i länken tyckar jag det funkar...?

AddeladdeMedlem sedan jan. 20013 406 inlägg
#7

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

JojoxxMedlem sedan juni 20004 308 inlägg
#8

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>
AddeladdeMedlem sedan jan. 20013 406 inlägg
#9

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.

AddeladdeMedlem sedan jan. 20013 406 inlägg
#10

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">&nbsp;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">&nbsp;Ta bort sida</td></a></tr></table>
	</DIV>
  
</DIV>
<p>&nbsp;</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&auml;r</p>
<% raknare = raknare + 1 
loop %>
</body>
</html>
JojoxxMedlem sedan juni 20004 308 inlägg
#11

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.

AddeladdeMedlem sedan jan. 20013 406 inlägg
#12

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.

AddeladdeMedlem sedan jan. 20013 406 inlägg
#13

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>
JojoxxMedlem sedan juni 20004 308 inlägg
#14

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.

AddeladdeMedlem sedan jan. 20013 406 inlägg
#15

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!

144 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)