Finns det något sätt att göra en onclick i body tagen?
Onclick body
18 svar · 760 visningar · startad av Boorg
<html>
<head>
<title></title>
</head>
<body onclick="alert('body')">Innehåll</body>
</html>
Den skulle ladda sidan a
jag vill att den skall ladda om den aktuella sidan fast med enorlunda querystring
Bra!
Men nu blir det ett problem.
Även när man klickar i t.ex ett textarea andvänder den den..
Finns det något sätt o göra så att den bara andvänds när man trycker på "bakgrunden"?
En fullösning är att sätta en variabel när du för musen över vissa föremål, som sedan kollas av innan koden utförs.
<html>
<head>
<script type="text/javascript">
clicksafe=false;
function dobodyclick(){
if (!clicksafe){
window.open("a.html","_self");
}
}
</script>
</head>
<body onclick="dobodyclick();">
<a href="http://www.google.com" onmouseover="clicksafe=true;" onmouseout="clicksafe=false;">Länk som går någon annanstans</a>
<br />
Textruta:<br />
<textarea onmouseover="clicksafe=true;" onmouseout="clicksafe=false;">
</textarea>
</body>
</html>
J.N. skrev:
HEJ!
Vad är det för fel på en vanlig hederlig <a href="denna_sida.htm?ny_qs">hämta igen</a>?
Han som jag gör detta till ville ha det andvändar vänligt och likt exel så jag försöker få det så likt som möjligt.
Om du inte vill att eventet ska köras på ett visst input fält kan du använda propertyn cancelBubble():
<input type="text" onclick="window.event.cancelBubble=true;" />
Web-Tor skrev:
Om du inte vill att eventet ska köras på ett visst input fält kan du använda propertyn cancelBubble():
<input type="text" onclick="window.event.cancelBubble=true;" />
En liten varning ang denna metod: Den är IE-specifik, så undvik den om du vill att även folk med andra webbläsare ska kunna använda sidan.
Nu iochmed att jag andvänder detta så funkar inte
<td>
<form method="POST" action="<% =What %>.asp?Vecka=<% =week %>&JobNo=<% =JobNo %>" onmouseover="clicksafe=true;" onmouseout="clicksafe=false;">
<textarea rows="3" name="Kommentar" cols="80" onmouseover="clicksafe=true;" onmouseout="clicksafe=false;"></textarea><br>
<input type="submit" value=" Kommentera " onmouseover="clicksafe=true;" onmouseout="clicksafe=false;">
</form>
</td>
</tr>
Någon som ser någon lösning?
Jag skulle ha valt att göra allting genom ett JavaScript, istället för att stoppa in event-attribut i valda element, så här:
<script type="text/javascript">
document.onclick = function(e) {
e = e || event;
var elm = e.target || e.srcElement;
if(elm.tagName.toUpperCase() == "BODY" || elm.tagName.toUpperCase() == "HTML")
window.open("a.html", "_self");
}
</script>
Koden kan utläsas som:
"Om man klickar någonstans i dokumentet, och elementet man trycker på antingen är HTML- eller BODY-elementet, öppna då "a.html".
vad är det som går fel? Jag prövade, och det verkade funka ok?
När jag skickar iväg formuläret laddas sidan om :/
Det är nog inte det scriptet men det är skumt..
Ändrade tillochmed adressen till ok och den laddar fortrarande bara om :/
<tr>
<td>
<form method="POST" action="ok">
<textarea rows="3" name="Kommentar" cols="80"></textarea><br>
<input type="submit" value=" Kommentera ">
</form>
</td>
</tr>
Har du en adress till sidan?
nitro2k01 skrev:
Web-Tor skrev:
Om du inte vill att eventet ska köras på ett visst input fält kan du använda propertyn cancelBubble():
<input type="text" onclick="window.event.cancelBubble=true;" />En liten varning ang denna metod: Den är IE-specifik, så undvik den om du vill att även folk med andra webbläsare ska kunna använda sidan.
För mig funkar det i såväl Firefox som Opera. :q