[js] zaznaczenie treści po naciśnięciu

Wszystko związane ze skryptami JS, DHTML itd.
Awatar użytkownika
krokffpp
Posty: 38
Rejestracja: 19 kwie 2008, 00:02:33
Płeć: Niewybrana
User Agent: Firefox Windows 1024x768

[js] zaznaczenie treści po naciśnięciu

Post autor: krokffpp »

witam, czesto widze na stronie kod na przyklad php czy html i obok opcje zaznacz calos, jak to wykonac w js?
Pozdrawiam :jib
Jesteśmy tym, co w swoim życiu powtarzamy.
Doskonałość nie jest jednorazowym aktem, lecz nawykiem.
----
Nexto - e-book gratis
monk
Posty: 556
Rejestracja: 11 sty 2009, 12:14:57
Płeć: Niewybrana
User Agent: Firefox Windows 1280x800

Re: [js] zaznaczenie treści po naciśnięciu

Post autor: monk »

Wystarczyło poszukać w kodzie naszego forum.

Kod: Zaznacz cały

function selectCode(a)
{
    // Get ID of code block
    var e = a.parentNode.parentNode.getElementsByTagName('CODE')[0];

    // Not IE
    if (window.getSelection)
    {
        var s = window.getSelection();
        // Safari
        if (s.setBaseAndExtent)
        {
            s.setBaseAndExtent(e, 0, e, e.innerText.length - 1);
        }
        // Firefox and Opera
        else
        {
            var r = document.createRange();
            r.selectNodeContents(e);
            s.removeAllRanges();
            s.addRange(r);
        }
    }
    // Some older browsers
    else if (document.getSelection)
    {
        var s = document.getSelection();
        var r = document.createRange();
        r.selectNodeContents(e);
        s.removeAllRanges();
        s.addRange(r);
    }
    // IE
    else if (document.selection)
    {
        var r = document.body.createTextRange();
        r.moveToElementText(e);
        r.select();
    }
} 
Kod musi być zapisany w takiej postaci:

Kod: Zaznacz cały

<div><a href="#" onclick="selectCode(this); return false;">Zaznacz kod</a><code>Lorem ipsum dolor sit amet...</code></div> 
Awatar użytkownika
krokffpp
Posty: 38
Rejestracja: 19 kwie 2008, 00:02:33
Płeć: Niewybrana
User Agent: Firefox Windows 1024x768

Re: [js] zaznaczenie treści po naciśnięciu

Post autor: krokffpp »

dzięki za odpowiedź, próbowałem na hasło 'po naciśnięciu', licho wie ile odpowiedzi ale zaznaczania kodu nie znalazłem:)

czy wiesz jak zmienić kolor zaznaczania?
Pozdrawiam :jib
Jesteśmy tym, co w swoim życiu powtarzamy.
Doskonałość nie jest jednorazowym aktem, lecz nawykiem.
----
Nexto - e-book gratis
monk
Posty: 556
Rejestracja: 11 sty 2009, 12:14:57
Płeć: Niewybrana
User Agent: Firefox Windows 1280x800

Re: [js] zaznaczenie treści po naciśnięciu

Post autor: monk »

Nie za dużo chcesz?
Awatar użytkownika
krokffpp
Posty: 38
Rejestracja: 19 kwie 2008, 00:02:33
Płeć: Niewybrana
User Agent: Firefox Windows 1024x768

Re: [js] zaznaczenie treści po naciśnięciu

Post autor: krokffpp »

ok myślałem że to banał, więc mam inną prośbę jak to zrobić na polu input?
Pozdrawiam :jib
Jesteśmy tym, co w swoim życiu powtarzamy.
Doskonałość nie jest jednorazowym aktem, lecz nawykiem.
----
Nexto - e-book gratis
monk
Posty: 556
Rejestracja: 11 sty 2009, 12:14:57
Płeć: Niewybrana
User Agent: Firefox Windows 1280x800

Re: [js] zaznaczenie treści po naciśnięciu

Post autor: monk »

Był sobie input, który nazywał się kapturek i był inputem tekstowym...

Kod: Zaznacz cały

<input type="text" id="kapturek"> <!-- NIE MYLIĆ "ID" Z "NAME" --> 
Teraz dowalimy mu kod JS:

Kod: Zaznacz cały

function dowalamCiZaznaczenie(e) {
            var s = window.getSelection();
            var r = document.createRange();
            r.selectNodeContents(e);
            s.removeAllRanges();
            s.addRange(r);
} 
Na koniec przycisk:

Kod: Zaznacz cały

<a href="javascript:dowalamCiZaznaczenie(document.getElementById('kapturek'));">Dowal zaznaczenie</a> 
Nie jest to kompatybilne ze wszystkimi przeglądarkami, ale nie chce mi się tyle tego pisać...
ODPOWIEDZ