Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 8 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
document.selected.createRange()

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 16.04.2010 11:51

Bozkávam!
Začal som rozoberať princíp redakčného systému a našiel som takýto kód(zjednodušene):


Kód:
<form name="redsys">
<input type="button" name="bold" value="bold" onclick="replace(0)">
<input type="button" name="blue" value="blue" onclick="replace(1)"><br>
<textarea name="textik" cols="50" rows="20">Toto je text, do ktoreho budeme vkladat znacky HTML, aby sme ich potom poslali do DB ako kontent nejakej stranky .................</textarea>
</form>

<script type="text/javascript">
var zaciatok = new Array('b','span style="color:blue"');
var koniec = new Array('b','span');

function replace(x){
   var selectedstring = document.selection.createRange().text;
   if (selectedstring.length>0)
      {
      var replacedstring = "<"+zaciatok[x]+">"+selectedstring+"</"+koniec[x]+">" ;
       document.selection.createRange().text = replacedstring;
      }
   else {alert("Najprv musite vybrat cast textu!")
        }
}
</script>

Funguje mi to ale len v IE7+PSPad, v IE8 ani vo FF nie. Ak som to správne pochopil, tak document.selection je niečo neštandardné. Nenašiel som to ani na W3school. Bude to možno tým, že to mám z knihy z 2002. roku.
Môžete mi poradiť, ako by to malo vyzerať, aby to fungovalo, alebo nejaký návod na webe?
Moc ďakujem za všetky rady!


Offline

Čestný člen
Čestný člen
document.selected.createRange()

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 16.04.2010 15:11

Ano, document.selection je nestandardne a funguje iba v IE a scasti v Opere. IE8 ma tzv. Developer Tools, spustis to klavesou F12 a tam na tabe Script klikni Start debugging - mozes napisat, aku chybu to hlasi?
Mozes sa inspirovat tymto alebo mojim skriptom. Tiez odporucam tento clanok.


Offline

Užívateľ
Užívateľ
document.selected.createRange()

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok Napísal autor témyOffline : 16.04.2010 15:49

FF má v chybovej konzole:
Upozornenie: reference to undefined property document.selection

Opera:
message: Statement on line 1: Type mismatch (usually non-object value supplied where object required)

IE8:
Nič mi to tam nepíše.....

EDIT:
Vďaka za ten článok, idem si to preložiť......


Offline

Užívateľ
Užívateľ
document.selected.createRange()

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok Napísal autor témyOffline : 16.04.2010 20:21

Mám jednu otázku:
V tom prvom príklade od Ďuriho je takýto kód:
Kód:
else   {                     // www ostatni ; provede vlozeni na konec textu
   text_stred      = text_pred + text_stred + text_za;   // naplnime text pro vepsani
   textarea.focus();               // nastavime pozici v dokumentu na textarea
   textarea.value += text_stred;            // pridej na konec
   }

No a nejde mi do hlavy, kde sa tam vzala, tá premenná ,,text_stred,,.
To je nejaká chyba, nie? Nieje to tam definované....


Offline

Čestný člen
Čestný člen
document.selected.createRange()

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 17.04.2010 9:15

camo
Mas pravdu, kazdopadne ziaden zo sucasnych prehliadacov sa k vetve else nedostane.
Co sa tyka IE8, ked sa dostanem na Windows, skusim sa s tym pohrat, ale mohol by si skusit odchytit tu chybu pomocou try-catch. Ale popravde, neviem, preco to v IE7 ide a v IE8 nie.


Offline

Užívateľ
Užívateľ
document.selected.createRange()

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok Napísal autor témyOffline : 17.04.2010 9:48

Ďuri:
Ten IE8 mal problém s týmto:To help protect your security Internet Explorer has restricked this webpage from running scripts or ActiveX controls that could access your computer. Click here for options.

Keď som to povolil tak to fungovalo aj v IE8. Takže ten kód funguje, len mám blbo nastavený IE8.....
a netuším ako sa to upozornenie vypína.......


Offline

Čestný člen
Čestný člen
document.selected.createRange()

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 17.04.2010 9:52

No to si mal hned povedat. Ked to hodis na web, bude to fungovat tiez, IE blokuje Javascripty spustane z file://. IE7 ti fungoval, lebo PSPad to zrejme pustal cez localhost alebo ako, neviem, kazdopadne keby si mal IE7 miesto IE8 a otvoril v nom tento subor, tiez by ti to zablokoval.


Offline

Užívateľ
Užívateľ
document.selected.createRange()

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok Napísal autor témyOffline : 17.04.2010 9:54

A dá sa to nejako vypnúť, lebo zmysel mi takáto kontrola moc nedáva...??


Odpovedať na tému [ Príspevkov: 8 ] 


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra