Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Doctype och javascript i Safari 2

Tråden skapades och har fått 2 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Linköping
  • 2005-11-09 00:42

Jag upptäckte idag att Safari (2.0.2) hade svårigheter med ett enkelt javascript. En liten ruta som ska följa muspekaren. Den flyttade bara rutan ibland. Av någon konstig anledning så bytte jag DOCTYPE till HTML 3.2 Final istället för HTML 4.0.1 Strict. Och då flöt det på hur bra som helst..???

Hur kan det komma sig?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
	"http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8">
		<title>JavascriptTest</title>
		<script type="text/javascript">	
		function handleMouseMove(oEvent) {
				var cursorplus = document.getElementById("redsquare");
				cursorplus.style.posLeft=oEvent.clientX-10;
				cursorplus.style.posTop=oEvent.clientY-10;
			}
		</script>	
	</head>
	<body onMouseMove="handleMouseMove(event)">
		<div id="redsquare" style="position:absolute;top:10px;left:10px;width:100px;height:100px;background:red;"></div>
	</body>
</html>
  • Oregistrerad
  • 2005-11-10 23:48

Eftersom det inte finns nåt innehåll på sidan är BODYn 0 pixlar hög och eftersom du kör onMouseMove på BODYn snappas det inte upp när du flyttar muspekaren nedanför BODYn. Den absolutpositionerade DIVen påverkar inte BODYns storlek, men eftersom den ändå ligger inom BODYn snappas eventet upp endast när muspekaren är inom DIVen. Och det är lätt hänt att den halkar utanför om man rör muspekaren lite för fort. Då snappas inte eventet upp längre, och DIVen stannar.

Prova att lägga till

style="border: 1px solid gray;"

på BODYn så ser du ytan som snappar upp ditt event (plus den röda DIVen såklart). Fyll på med några rader text så blir allt uppenbart tydligt när du jämför att flytta muspekaren innanför och utanför ramen.

Det hela är dock lite ologiskt eftersom en bakgrundsfärg på BODYn färgar hela fönstret, men en border bara ramar in innehållet...

  • Medlem
  • Linköping
  • 2005-11-11 17:39

Tack det gjorde susen! Har aldrig tänkte på att BODYn också har en storlek.

1
Bevaka tråden