Strona 1 z 1

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

: 25 lut 2009, 10:51:35
autor: krokffpp
witam, czesto widze na stronie kod na przyklad php czy html i obok opcje zaznacz calos, jak to wykonac w js?

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

: 25 lut 2009, 15:31:47
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> 

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

: 25 lut 2009, 23:56:54
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?

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

: 26 lut 2009, 14:41:02
autor: monk
Nie za dużo chcesz?

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

: 27 lut 2009, 21:48:10
autor: krokffpp
ok myślałem że to banał, więc mam inną prośbę jak to zrobić na polu input?

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

: 27 lut 2009, 22:38:36
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ć...