Avaleht
uus teema   vasta Tarkvara »  WWW »  Firefox ja Events märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 01.05.2008 20:05:54 Firefox ja Events vasta tsitaadiga

Pole eriliselt valideerumisele vaeva näinud, kuid nüüd proovisin siis lihtsat lehte valideeruvaks teha, kuid oh häda FireFox keeldub enamustes Events lisadest onmouseover, onmousedown jne.
Näiteks lihtne kood

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Creation date: 1.05.2008 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1257"/>
<title></title>
<meta name="description" content=""/>
<meta name="keywords" content=""/>
<meta name="author" content="Andrus"/>
<meta name="generator" content="AceHTML 5 Pro"/>
</head>
<body>
<div id="ruut" style="position:relative;width:100px;height:100px;background:#123ffa;">ergergregr</div>
<a href="#" onmousedown="ruut.style.width='200px';" onmouseup="ruut.style.width='100px';">Toks</a>
</body>
</html>


Validaator tunnistab selle õigeks, kuid FF ei toimi enam peale DOCTYPE lisamist. Kuidas saada need asjad valideeruvas lehes tööle? Teiste browseritega töötab.

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 01.05.2008 20:28:24 vasta tsitaadiga

andrusny, firebug võta abiks
ruut is not defined
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 01.05.2008 22:10:16 vasta tsitaadiga

Ok. Otsisin netist, kuid ei osanud teda kuidagi nii defineerida, et tööle hakkaks, leidsin ainult hunniku samalaadseid probleeme. Ehk keegi hea inimene selgitab.
See teeb uue div elemendi, kuid ff keeldub ka seda liigutamast. Ja ma tahaks defineerida juba olemasolevat divi, mitte neid JS abil luua.
var newdiv = document.createElement('div');
var divIdName = 'ruut2';
newdiv.setAttribute('id',divIdName);
newdiv.style.width = "300px";
newdiv.style.height = "300px";
newdiv.style.left = "300px";
newdiv.style.top = "300px";
newdiv.style.position = "absolute";
newdiv.style.background = "#00C";
newdiv.style.border = "4px solid #000";
newdiv.innerHTML = 'Test Div';
document.body.appendChild(newdiv);

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Tomv
Kreisi kasutaja
Tomv

liitunud: 14.01.2007




sõnum 01.05.2008 22:32:54 vasta tsitaadiga

getElementById() ei ole proovinud kasutada, et ruutu kätte saada?
_________________
jah
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
sander85
HV kasutaja
sander85

liitunud: 30.09.2007




sõnum 01.05.2008 23:58:59 vasta tsitaadiga

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Creation date: 1.05.2008 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1257"/>
<title></title>
<meta name="description" content=""/>
<meta name="keywords" content=""/>
<meta name="author" content="Andrus"/>
<meta name="generator" content="AceHTML 5 Pro"/>
<script type="text/javascript"><!--
        function changeWidth(id, nw)
        {
                var oid = id;
                var new_width= nw + 'px';
                var o = document.getElementById(oid);
                o.style.width=new_width;
        }
-->
</script>
</head>
<body>
<div id="ruut" style="position:relative;width:100px;height:100px;background:#123ffa;">ergergregr</div>
<a href="javascript:void(0);" onmousedown="changeWidth('ruut','200');" onmouseup="changeWidth('ruut','100');">Toks</a>
</body>
</html>

_________________
Think of how stupid the average person is, and realize half of them are stupider than that.
-- G. Carlin
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 02.05.2008 12:40:35 vasta tsitaadiga

Tänud.
Kas siis igasugused sellised lihtsad muutmised ilma function kasutamata tuleb ära unustada. Ma mõtlen nagu ma algul tegin, et onmousedown alla otse mingi laius või midagi muud? Peab iga tühisemagi asja jaoks eraldi funktsiooni tegema?

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 02.05.2008 19:55:55 vasta tsitaadiga

andrusny kirjutas:
Pole eriliselt valideerumisele vaeva näinud, kuid nüüd proovisin siis lihtsat lehte valideeruvaks teha [--]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">


Ma ei tea kustkohast sa selle DOCTYPE'i kopeerinud oled, aga igatahes viitab su DOCYPE'i URL su oma masinas olevale failile DTD/xhtml1-transitional.dtd, mida sul ilmselt siiski enda arvutis/serveris pole. Ja sellisel juhul ei loe validaator su lehte ka valideeruvaks, sest ta üritaks leida su serverist toda faili, aga ei leiaks. (Su kood hetkel valideerus ilmselt seetõttu, et sa ei kasutanud valikut "Validate by URI").

Seega korrektne DOCTYPE sinu puhul oleks siiski:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


Aga tõelised mehed kasutavad Stricti. Transitional on lastele.

andrusny kirjutas:
Kas siis igasugused sellised lihtsad muutmised ilma function kasutamata tuleb ära unustada. Ma mõtlen nagu ma algul tegin, et onmousedown alla otse mingi laius või midagi muud? Peab iga tühisemagi asja jaoks eraldi funktsiooni tegema?


Üldiselt peetakse heaks stiiliks, et HTML-i, CSS-i ja JavaScripti ei kirjutata läibisegi ühte faili. HTML peaks defineerima lihtsalt lehekülje struktuuri (pealkirjad, lõigud, sektsioonid), CSS peaks ütlema, kuidas erinevad struktuurielemendid välja näevad ja JavaScript peaks määrama, kuidas nad käituvad. Ideaalis võiks võtta ära CSS-i ja/või JavaScripti ning lehekülg peaks endiselt kasutuskõlbulikuks jääma.

Näiteks sinu lehekülje puhul:

html:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="et" lang="et">
  4.   <meta http-equiv="Content-Type" content="text/html; charset=windows-1257" />
  5.   <title>Sinu leht</title>
  6.   <link rel="stylesheet" type="text/css" href="styles.css" />
  7.   <script type="text/javascript" src="script.js"></script>
  8. </head>
  9.   <div id="ruut">ergergregr</div>
  10.   <p><a id="ruut-link" href="mingileht.html">Toks</a></p>
  11. </body>
  12. </html>


HTML-is siis seega lihtsalt viited CSS-i ja JavaScripti failidele.

Et ka CSS ja JavaScript omavahel lahus hoida, siis defineerisin CSS-i klassi mousedown:

css:
  1. #ruut {
  2.     position: relative;
  3.     width: 100px;
  4.     height: 100px;
  5.     background: #123ffa;
  6. }
  7. #ruut.mousedown {
  8.     width: 200px;
  9. }


JavaScripti fail on kirjutatud nii, et kood käivitub lehekülje laadimisel, otsitakse üles dokumendis olev link ja määratakse selle onmousedown, onmouseup ja onclick sündmused (viimane on tarvilik seetõttu, et hiireklahvi vabastamisel ei mindaks lehele mingileht.html):

javascript:
  1. window.onload = function() {
  2.     var link = document.getElementById("ruut-link");
  3.     var ruut = document.getElementById("ruut");
  4.     link.onmousedown = function() {
  5.         ruut.className = "mousedown";
  6.     };
  7.     link.onmouseup = function() {
  8.         ruut.className = "";
  9.     };
  10.     link.onclick = function() {
  11.         return false;
  12.     };
  13. };


See kõik võib tunduda liialdamisena, kuid ma ei arva nii. Isegi kui su lehekülg on päris tilluke, on ikkagi parem hoida HTML, CSS ja JavaScript eraldi failides. Eriti kui su tekstiredaktor ei toeta HTML-i, CSS-i ja JavaScripti läbisegi koodi esiletõstmist (mina ei tea ühtegi, mis toetaks style="" või onclick="" atribuudi sees oleva koodi värvimist). Lisaks sunnib nende eraldi hoidmine sind kirjutama paremat koodi (nii HTML-i, CSS-i kui JavaScripti).
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 02.05.2008 21:51:03 vasta tsitaadiga

AceHTML PRO 5 kasutan ja minu meelest päris hästi värvib. Soovitan proovida, pole ise paremat leidnud.
Demo Pilt

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 03.05.2008 09:09:06 vasta tsitaadiga

Tõesti, pole paha. Panen kõrva taha, et katsetada millagi kui ma Windowsi taha satun.
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  Firefox ja Events
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.