Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
07.02.2009 17:40:10
JS TextEditor |
|
|
Proovin JS text editori teha. Mul on põhimõtteliselt töötav editor, kuid jäin probleemi taha, kuidas seada kursori positsiooni nähtaval lehel. Hetkel html kood on mul textarea sees ja selle kuvan välja div sisse
document.getElementById('sisu').innerHTML=document.getElementById('sk').value; |
Nüüd on selle div sees selle html visuaalne väljund. Kuidas ma aga nüüd seal visuaalse peal saaksin näidata, kus kohas kursor textareas asub? Näiteks on seal kiri : Mine metsa ja ma tahaks panna kursori nende kahe sõna vahele. On sellele mingi lihtsamat sorti lahendus?
Minu hetke seis: Edit
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
07.02.2009 17:56:33
|
|
|
document.getElementById('sisu').contentEditable = true; |
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
07.02.2009 18:27:38
|
|
|
Aitäh. Toimib, kuid nüüd tuleb selline probleem, et kui seal teen reavahetuse, teeb ta koodis <p></p> nagu uue paragrahvi ja rea vahe jääb suur. See viga vist ka teistes txtEditorides, kuna olen sama asja täheldanud, et reavahed on laiad. Kas seda kuidagi saaks muuta, et enter vajutades ei tekitaks uut p vaid paneks lihtsalt br vahele. Ma saaks muidugi teha funk, mis leiab peale enteri vajutust selle <P> </P> mis ta sinna teeb ja koheselt asendaks selle BR tagiga kuid ehk on mingi teine tee veel olemas.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
07.02.2009 18:35:52
|
|
|
Kui vajutad Shift+Enter, siis sisestab vaid reavahetuse.
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
07.02.2009 23:18:38
|
|
|
Ei saa mitte vaiki olla...
Olen otsinud kuidas märgitud tekstiosa positsiooni määrata, kõik näited on nagu ühtemoodi, kuid mul nad ei tööta, ütleb, et Object doesń t support this method
function sel(){
var range= window.getSelection().getRangeAt(0);
alert('Current position: '+range.startOffset+' inside '+range.startContainer);
range.setStart(newParent, textOffset);
range.setEnd(newParent, textOffset);
} |
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
08.02.2009 15:37:38
|
|
|
Proovi sedasi, et lood uue Range objekti, mitte ei muuda vana:
// create new range
var range = document.createRange();
range.setStart(parent, offset);
range.setEnd(parent, offset);
// remove old ranges and add the new one
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range); |
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
08.02.2009 17:08:53
|
|
|
Aitäh, see toimib, kuid tuleb mängu jällegi IE Vs. FF
on ainult FF ja Opera toetusega. Nad ei saa kohe kuidagi kokkuleppele, kuidas asjad toimima peavad. Ometi on mul juba IE 8 peal.
Edit:
Hetkel proovisin, ka minu enda eelmine funktsioon toimib Operas normaalselt.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
08.02.2009 18:12:42
|
|
|
Kogu see värk näikse olevat suht paras keemia. Kuid paistab, et see Quirksmode'i artikkel seletab asjad üsna põhjalikult lahti.
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
10.02.2009 18:45:08
|
|
|
Üks võibolla väga rumal küsimus, kas JAvaScript värve tunneb? Klik elemendil ja annab värvi koodi. Veel parem klikk pildil ja annab värvi koodi. Style kaudu võtmist tean
document.getElementByID().style.background |
kuigi tundub, et kui see on antud ette ennem css osas siis ma seda kätte ei saa vaid ainult siis, kui see on elemendile liidetud style=""
Kuid ikkagi kas ta otse on võimeline värvi tuvastama?
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
10.02.2009 18:54:40
|
|
|
Miski selline javascripti func on:
function getComputedStyleForElement (element, cssPropertyName) {
if (element) {
if (window.getComputedStyle) {
return window.getComputedStyle(element, '').getPropertyValue(cssPropertyName.replace(/([A-Z])/g, "-$1").toLowerCase());
} else if (element.currentStyle) {
return element.currentStyle[cssPropertyName];
} else {
return null;
}
} else {
return null;
}
}
|
koodijupi leidsin siit: http://bytes.com/groups/javascript/92839-access-css-javascript google otsisõnadeks, mille kaudu leidsin, olid: javascript access css properties
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
10.02.2009 19:10:13
|
|
|
Siin Quirksmode'i lehel on veidi seletatud kuidas saada erinevate DOM-i elementide stiilide väärtusi. Aga sedapidi ei anna välja lugeda suurt muid värve kui teksti, tausta ja serva värvid. Tuvastada, kas klikiti serva või tausta peale on vast võimalik. Vahet teha kas klikiti tekstis tähele või mööda, suht lootusetu ettevõtmine.
Piltidega on asi samuti suht nigel, sest JavaScript ei võimalda pildi pikselitele ligi pääseda. On küll võimalik kopeerida pilt <canvas> elemendi peale ning siis vaadelda canvase pikseleid. Aga <canvas> pole muidugi IE poolt toetatud.
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
10.02.2009 20:23:48
|
|
|
Kui väga tahta, siis saab ju JS'ga välja uurida kliki hetkel hiire asukohta, antud lingi/pildi asukohta ja siis natuke arvutamist teha ja saadki teada mis piksli peale klikiti
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
11.02.2009 00:59:58
|
|
|
Tänud, eks ma uurin neid lehti.
Sortisin siis nendest välja vast kõige optimaalsema funktsiooni, mis võtab ById või class järgi ja toimib kõgis kolmes browseris.
Üks oli veel viisakama koodiga, kuid toimis ainult IE ja Opera
// **************** css osa ****************
#aDiv {
color: darkgreen;
background-color: lightgreen;
height: 200px;
}
// ************** JS ******************
function getStyleObjectFromSelector (selectorText) {
if (document.styleSheets) {
for (var i = document.styleSheets.length - 1; i >= 0; i--) {
var styleSheet = document.styleSheets[i];
var rules;
if (styleSheet.cssRules) {
rules = styleSheet.cssRules;
}
else if (styleSheet.rules) {
rules = styleSheet.rules;
}
if (rules) {
for (var j = rules.length - 1; j >= 0; j--) {
if (rules[j].selectorText == selectorText) {
return rules[j].style;
}
}
}
}
return null;
}
else {
return null;
}
}
//****************** Väljund ***************
var height = getStyleObjectFromSelector ('#aDiv').height;
|
Edit:
Kas JS tekitatud dive loetb browser kuidagi teistsugusteks kehadeks? Genereerisin värvi tabeli JS abil panin igale peale onclick funtioni, mis selle värvi koodi mulle ühte hidden välja viskab. Nüüd document.execCommand("ForeColor", false, document.getElementById('rg3').value); sellega teen editoris teksti värviliseks, kuid kui selle käsu panen jooksma sealt samast onklick käsust, siis jookseb kinni, kui teen selle jaoks eraldi nupu, siis töötab. Midagi on totaalselt segi. Hetkel lahendus selline
DEMO
Hetkel siis nii, et valid esmalt värvi, siis märgistad vajaliku tekstiosa ja siis vajutad seda suurt T tähte
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
|