Autor Zpráva
Daniel V
Profil *
Trošku som preštudoval tu na týchto stánkach, aký majú význam označenia doctype a dozvedel som sa, že sa s tým nastavuje quirk mód, alebo standardný mód.

Začal som sa o to zaujímať preto, lebo som pred časom čítal tu na JPW, že javascript sa nezaujíma o to, aké doctype je nadefinované, či html, alebo XHTML, funguje rovnako.

Mám jeden skript na otvorenie bublinky, alebo popup k obrázku, alebo k odkazu, ktorý mi dobre funguje vo všetkých mnou testovaných prehliadačoch (Opera, FF, IE), pokial nie je nadefinované žiadne doctype, alebo je nadefinované html4 Traditional. Bublinka sa od polohy myši drží stále v nastavenej vzdialenosti.

Keď som nastavil doctype XHTML, alebo proste iný standardný mód, tak mi skript síce funguje, ale tak, že vzdialenosť bublinky od obrazu, teda aj od myši sa mení podľa toho, kde sa ten obraz na ploche monitoru nachádza.

Toto poznanie mi dokazuje, že predsa len ten javaskript sa asi "pozerá", čo je hore na stránke nadefinované, lebo mi to funguje inak. Chcel by som sem skopírovať tú stránku s tým skriptom, nie je veľmi veľký. Dobré by bolo, keby niekto našiel nejakú možnosť úpravy, aby to fungovalo dobre aj v štandardnom móde. Keby sa ale nenašlo riešenie, aj tak sa nestane nič vážneho.
<!doctype html public "-//W3C//DTD HTML 4.01  //EN">  
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250" />

<style type="text/css">

#toto {
	display: none; 
	padding: 3px; 
	border: #202020 solid 2px; 
	font: normal 12px/17px Georgia; 
	position: absolute; 
	background-color: lightyellow;  
	color: #2d0058; 
	width: 160px;  
	height: 53px;
	text-align: center;
  }

</style>


<script type="text/javascript">

var tahaj="";

function daj(text,mne) {
  tahaj=mne;
  tahaj.onmousemove=drz;
  document.getElementById('toto').innerHTML=text;
  document.getElementById('toto').style.display="block";
  window.onscroll=drz;
}

function drz() {
  var ev=arguments[0]?arguments[0]:event;
  var x=ev.clientX;
  var y=ev.clientY;
  diffX=-40;
  diffY=-70;
  document.getElementById('toto').style.top  = y-2+diffY+document.body.scrollTop+ "px";
  document.getElementById('toto').style.left = x-2+diffX+document.body.scrollLeft+"px";
  tahaj.onmouseout=skry;  
}

function skry() {
  document.getElementById('toto').style.display="none";
}
</script>
</HEAD>

<BODY>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<div align="center">
<span id="toto"></span>
<img src="balakina.gif" width="237" height="197" border="1" onmouseover="daj('Priestor na napísanie <b> potrebného </b>textu. ',this)">
</div>

<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />



</body></html>


Keď tam hore do doctype dopíšem slovko "Traditional", tak ten skript funguje dobre, bez toho nie, ani vtedy nie, keď nadefinujem XHTML. Tých <br> je tam toľko preto, aby sa obrázok dal posúvať po monitore.
_es
Profil
Daniel V:
že javascript sa nezaujíma o to, aké doctype je nadefinované
To nie je pravda, vykresľovací mód ovplyvňuje CSS, teda logicky bude aj nastavenie CSS vlastností pomocou JS závislé od vykresľovacieho módu.

ani vtedy nie, keď nadefinujem XHTML.
XHTML a HTML sa nedefinuje cez doctype. Doctype je užitočné len na prepínanie vykreľovacích režimov (a validáciu).

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0