• 2012 (3)
  • 2011 (51)
  • 2010 (38)
  • 2009 (36)
  • < września 2009 >
    Pn Wt Ś Cz Pt So N
      1 2 3 4 5 6
    7 8 9 10 11 12 13
    14 15 16 17 18 19 20
    21 22 23 24 25 26 27
    28 29 30        

    Weź udział!

    Logo konkursu Wolny Wybór

    wypróbuj

    Logo wielojęzycznego chatu

    : Home / blog / wpisy wg daty
    Września 2009

    Wtorek 22 września 2009

    Udostępnianie wyszukiwarce google prywatnych dokumentów PDF Drukuj Napisz e-mail
    Wpisał %s Jan Jackowicz-Korczyński
    wtorek, 22 września 2009 06:46
    Inne tematy / Inne

    Firma Google zamierza zindeksować materiały utworzone za pomocą usługi Google Dokumenty. Dotyczy to tekstów i arkuszy kalkulacyjnych i jest obłożone pewnym warunkiem: w wynikach wyszukiwania pojawią się wyłącznie materiały oznaczone jako publiczne i dodatkowo wskazane z poziomu strony WWW.

    Dokumenty tworzone za pomocą usługi Google'a domyślnie mają ustawiony status "prywatny". W celu zezwolenia na zindeksowanie zawartości będzie trzeba wydać polecenie Udostępnij | Opublikuj jako stronę internetową. Takie publiczne dokumenty pojawią się w wynikach wyszukiwania Google'a w ciągu dwóch tygodni.

     

    Informacja cytowana za: (aru) .- HeiseOnLine

    Read more
    Zmieniony ( sobota, 26 lutego 2011 12:11 )


    Poniedziałek 21 września 2009

    Pseudoadresy PDF Drukuj Napisz e-mail
    Wpisał %s Patryk yarpo Jar
    poniedziałek, 21 września 2009 21:24
    Java Script / Artykuły JS

    Bardzo częstym jest wywołanie jakiejś funkcji JS po konkretnej akcji – np. kliknięciu. Często się także zdarza, że po kliknięciu na link, który jest stworzony tylko po to, aby wywołać tę funkcję. Najczęstszą konstrukcją z jaką się spotykam jest:

    {codecitation} <a href="#" onclick="skrypt()">Wywołaj</a> {/codecitation}

    No i takie coś działa. Jednak warto zauważyć, że nie wygląda zbyt ładnie. Po za tym, użytkownik nie widzi tak naprawdę co się stanie po kliknięciu, gdyż w pasku statusu zobaczy jedynie „#”. (fakt jeśli zobaczy odwołanie do funkcji także, bez zaglądnięcia w kod, niewiele będzie wiedział, ale zawsze coś... :P ).

    Można to zmienić, a oto sposób:

    {codecitation} <a href="javascript:skrypt();">Wywołaj</a> {/codecitation}

    Działanie takiego wywołania będzie identyczne. A nawet lepsze – nie każdy link musi być wywołany na kliknięcie – niektórzy używają klawiatury... Jednak, aby być pewnym, że skrypt się wykona, a nam na ekranie nie pokaże się nic niepożądanego, warto użyć funkcji void():

    {codecitation} <a href="javascript:void(skrypt());">Wywołaj</a> {/codecitation}

    Teraz już wszystko będzie ładnie pięknie :).

    Aha, zapomniałbym. W atrybucie href znacznika a, nie może być spacji. Jeśli wywołujesz funkcję, która wymaga tego – np:

    {codecitation} <a href="javascript:void(skrypt(new jakas_klasa));">Wywołaj</a> {/codecitation}

    To zamiast spacji " ", wstaw: "%20". W żaden sposób nie wpłynie to na działanie skryptu, a walidator nie będzie krzyczał.

    Read more

    Dynamiczne ładowanie JS PDF Drukuj Napisz e-mail
    Wpisał %s Patryk yarpo Jar
    poniedziałek, 21 września 2009 21:23
    Java Script / Artykuły JS

    Jeśli kiedyś myślałeś o tym, jakby tu załadować jakiś skrypt „po drodze”, zamiast ładować go od razu, to na pewno ta porada ci się przyda.
    Pokażę, w jaki sposób załadować skrypt JS znajdujący się w osobnym pliku dynamicznie, to znaczy – w trakcie surfowania po stronie, bez jej przeładowania. Niech przemówi kod:
    {codecitation class='brush: js'} <script type="text/javascript">

    // <!-- <![CDATA[

    function zaladuj_skrypt(plik) {

        var nowySkrypt = document.createElement("script");

        nowySkrypt.setAttribute("type", "text/javascript");

        nowySkrypt.setAttribute("src", plik + ".js");

     

        document.getElementsByTagName("head")[0].appendChild(nowySkrypt);

    }

    // --> ]]></script>{/codecitation}

    Co więc po kolei tu robię? Stworzyłem małą funkcję void zaladuj_skrypt(string plik), która pozwala na dynamiczne dodawanie skryptów. Wywołuje się ją w taki sposób:
    {codecitation class='brush: html'}<p>

        <a href="javascript:void(zaladuj_skrypt('jeden'))">Jeden</a> ::

        <a href="javascript:void(zaladuj_skrypt('dwa'))">Dwa</a>

    </p>{/codecitation}

    Funkcja ta przyjmuje jako parametr nazwę skryptu JS [bez rozszerzenie, to zostaje automatycznie dodane w funkcji].

    Warto byłoby także zapoznać się z:

    • developer.mozilla.org/pl/docs/DOM:element.appendChild
    • developer.mozilla.org/pl/docs/DOM:document.createElement
    • w3schools.com/dom/met_document_createelement.asp
    • w3schools.com/dom/met_element_setattribute.asp
    • developer.mozilla.org/pl/docs/DOM:element.setAttribute


     

    Read more
    Zmieniony ( czwartek, 29 kwietnia 2010 14:45 )

    JSON PDF Drukuj Napisz e-mail
    Wpisał %s Patryk yarpo Jar
    poniedziałek, 21 września 2009 21:20
    Java Script / Artykuły JS

    JSON, to nie tyle technologia czy nowy język co inne spojrzenie na to co już istnieje. Być może nawet samo odkodowanie tego skrótu da już nam dużo więcej informacji: "Java Script Object Notation", czyli format wymiany danych, podobnie jak XML. Jednak XML (eXtensible Markup Language) ma w porównaniu z JSONem [wymawiane jak angielskie imię "dżejson"] jeden minus – do jego wykorzystania w projektach webmasterkich najczęściej potrzebujemy dodatkowych klas i obiektów (o czym więcej w poradzie klasa ObjTree).
    JSON w JS może być szybko przetworzony w JS za pomocą funkcji eval(). Może zatem przykład danych:
    (najpierw – trochę bardziej zrozumiałe, dla webmastera, dane w formacie XML):
    {codecitation}
    <?xml version="1.0" encoding="utf-8"?>
        <dane>
            <user>
                <imie>jan</imie>
                <nazwisko>Kowalski</nazwisko>
            </user>
            <user>
                <imie>Piotr</imie>
                <nazwisko>Nowak</nazwisko>
            </user>
        </dane> {/codecitation}

    W JSON dane takie wyglądały następująco:
    {codecitation}
    {
        "dane" : {
            "user" : [
                {
                "imie" : "Jan",
                "nazwisko" : "Kowalski"
                },
                {
                "imie" : "Piotr",
                "nazwisko" : "Nowak"
                }
            ]
        }
    } {/codecitation}

    Przyjmijmy, że stosując AJAX takie dane otrzymujemy jako wynik działania skryptu na serwerze. W przypadku XML pewnie skorzystamy z metody responseXML() i następnie będziemy się bawić z odpowiednim pobieraniem danych – dla początkujące moze to być naprawdę niezbyt przyjemne (jeśli się korzysta z gołego obiektu XMLHttpRequest). W przypadku JSONa, polecałbym coś takiego:
    {codecitation}
    /*     Stworzenie obiektu XMLHttpRequest
        wysłanie odpowiednich danych na serwer i uzykanie odpowiedzi:
    */
        var json_tekst = HTTPrequest.responseText; // uzyskuje dane w postaci ciągu znaków
        eval("var json_obiekt = ("+json_tekst+")");

        for (i=0; i<json_obiekt.dane.user.length; i++)
            alert(    json_obiekt.dane.user[i].imie + ' ' +
                     json_obiekt.dane.user[i].nazwisko        );  {/codecitation}
    Oczywiście to tylko drobna część możliwości JSONa. Warto jednak o nim pamiętać, jeśli przyjdzie nam robić cokolwiek z danymi otrzymywanymi z serwera [niekoniecznie naszego, coraz częściej potrzebujemy danych z „obcych” serwerów].

    Warto byłoby także zapoznać się z:

    • pl.wikipedia.org/wiki/JSON
    • json.com
    • anakin.us/blog/advancedajax-112-ajax-json/
    Read more

    Dynamiczne zakładki PDF Drukuj Napisz e-mail
    Wpisał %s Patryk yarpo Jar
    poniedziałek, 21 września 2009 21:18
    Java Script / Artykuły JS

    Na wielu stronach występuje coś, co mi osobiście kojarzy się z zakładkami. Niedawno na forum, ktoś zapytał jak to zrobić i wymyśliłem bardzo prosty – chyba najprostszy możliwy – sposób na to.
    Pomyślałem więc, że się podzielę :)
    Oto kod (przykład):
    {codecitation}<html>
    <head>
    <script type="text/javascript">
    // <![CDATA[
    function pokaz_ukryj(pokaz, ukryj) {
        document.getElementById(pokaz).style.display = "block";
        document.getElementById(ukryj).style.display = "none";
    }
    //]]
    </script>
    </head>
    <body>
    <p>
        <a href="javascript:void(pokaz_ukryj('tabela1', 'tabela2'))">Pokaż 1</a>: ||
        <a href="javascript:void(pokaz_ukryj('tabela2', 'tabela1'))">Pokaż 2</a>:
    </p>
    <table id="tabela1" style="background: red; width: 200px;">
        <tr>
           <td>To jest pierwsza tabela</td>
        </tr>
    </table>
    <table id="tabela2"style="background: green; width: 200px; display:none">
        <tr>
            <td>To jest druga tabela</td>
        </tr>
    </table>
    </body>
    </html>{/codecitation}
    No i co ten kod robi? Mam dwie tabele, z czego jedną ukrywam, za pomocą CSS [display: none]. Dodatkowo tworzę dwa linki, które wywołują funkcję pokaz_ukryj() przyjmującą dwa parametry:

    • string pokaz będący nazwą id tabeli, która ma być pokazana
    • string ukryj, będący nazwą id tabeli, która ma być ukryta

    Oczywiście w przypadku rozrostu naszej strony i konieczności wprowadzenia dodatkowych „zakładek” zaczynają się schody. Ale Zawsze można zrobić sobie jakąś tablicę z nazwami id tabel, następnie do funkcji przesyłać numer indeksu tabeli, która ma być widoczna, a pozostałe – za pomocą pętli – pochować. proste i logiczne. Życzę przyjemnej pracy z kodem :)

    Read more

    Skrócony zapis if PDF Drukuj Napisz e-mail
    Wpisał %s Patryk yarpo Jar
    poniedziałek, 21 września 2009 21:08
    Java Script / Artykuły JS

    Z pewnością nie raz używałeś instrukcji warunkowej if. Niekoniecznie musiałeś programować w JS, aby się z warunkami. Często warunki w programie stanowią największą część kodu. Czy muszą zajmować aż tyle miejsca? Nie...

    Normalny if wygląda tak:

    {codecitation} if (warunek) {
        // wykonaj
    } else {
        // wykonaj co innego
    } {/codecitation}

    Jeśli to, co ma zostać wykonane ma jedynie jedną linię kodu, np:

    {codecitation} if (i>0) {
        i--;
    } else {
         i++;
    } {/codecitation}

    Można to zapisać krócej:

    {codecitation} if (i>0) i--;
    else i++; {/codecitation}

    Jeśli opuścimy klamry, to zostanie wykonany kod do pierwszego średnika, jako kod warunkowy. Reszta zostanie wykonana liniowo. Czyli jeśli masz:

    if (i>0) {
        i--;
        inna_zmienna = 4;
    } else {
         i++;
        inna_zmienna = 7;
    }

    I opuścisz klamry, to w przypadku, gdy i> 0 zostanie wykonane:

    1. i--
    2. inna_zmienna = 4
    3. inna_zmienna = 7


    Tak więc pamiętaj:

    • zawsze używaj klamer
    • jeśli zdecydujesz się z powodów "oszczędności czasu" z nich zrezygnować, zawsze bardzo uważnie stawiaj wcięcia


    Jednak nie o tym miała być ta porada :) Miałem zamiar pokazać, rzeczywistą możliwość skrócenia kodu, oto i ona:

    {codecitation} (i>0) ? i-- : i++; {/codecitation}

    Jest równoznaczne pierwszemu listingowi. W takim zapisie nie można używać więcej niż jednej instrukcji. Czyli nie można napisać i--; inna_zmienna=4;

    Więc po co to?

    Bardzo ułatwia to życie, i kod, kiedy masz krótką funkcję, np. min:
    {codecitation}function min(a, b) {
        if (a>=b) {
            return b;
        } else {
            return a;
        }
    }{/codecitation}

    Jaka ta funkcja dluuuuga! Fuj! A można ładnie i szybko:

    {codecitation} function min(a, b) {
        return (a>=b) ? b : a;
    } {/codecitation}

    Przekonałem, czy jeszcze nie? To może coś takiego:

    {codecitation}
    a = (user=="Kasia") ? "Witaj Kasiu" : "Nie znam Cię!";
    alert(a);{/codecitation}

    lub nawet krótsze:
    {codecitation} alert((user=="Kasia") ? "Witaj Kasiu" : "Nie znam Cię!"); {/codecitation}

    Jest wiele możliwości wykorzystania tego skrótu. Polecam po eksperymentować :)

    Bądź jednak czujy. Zbyt uproszczony kod czasem staje się mniej czytelny - lepiej jest napisać dłuższy kod, ale łatwiejszy do zrozumienia niż krótki i nieczytelny meisterstück kompresji.

     

    Read more

    "Chwytanie" formularza PDF Drukuj Napisz e-mail
    Wpisał %s Patryk yarpo Jar
    poniedziałek, 21 września 2009 21:06
    Java Script / Artykuły JS

    Dawniej, aby odwołać się do pewnego elementu na stronie [najczęściej formularza] używano tego typu konstrukcji:

    {codecitation} document.nazwa_formularza.(...) {/codecitation}

    A sam formularz wyglądał tak:

    {codecitation} <form name="nazwa_formularza" action="#"> {/codecitation}

    Jeśli jednak ktoś kiedyś próbował tak zrobić stronę i sprawdził jej poprawność, to niestety walidator krzyczał, że tak należy robić. Więc jak!?

    Oto rozwiązanie:

    {codecitation} document.forms[0].elements[2].value; {/codecitation}

    Odwoływać się do formularza za pomocą tablicy. Indeks tablicy odpowiada numerowi formularza na stronie [liczone od 0].

    Niestety, czasem zdarza się, że nie wiesz jaki ostatecznie będzie numer formularza na stronie – np. Jeśli na górze strony jest formularz do logowania, to gdy użytkownik się zaloguje formularz znika i całe nasze numerowanie szlag trafia! Więc jak to obejść?!

    Oto rozwiązanie:

    {codecitation} var formularz = getElementById("form1");
    var pole_formularza = formularz.pole1.value; {/codecitation}

    I tym sposobem obeszliśmy niewygodne przeszkody. A kod HTML wyglądać będzie następująco:

    {codecitation} <form id="form1" action="skrypt.php" method="post"> {/codecitation}

    Zauważ, że dzięki takiemu zabiegowi możemy także odnosić się do tego id za pomocą CSS.

    Read more

    Przekierowanie na inny adres PDF Drukuj Napisz e-mail
    Wpisał %s Patryk yarpo Jar
    poniedziałek, 21 września 2009 20:58
    Java Script / Artykuły JS

    Czasem zdarza się, że chcemy aby po wejściu na jakąś stronę internauta został automatycznie przekierowany gdzie indziej. Oto jedno z wielu rozwiązań:

    {codecitation} <html>
    <head>
    <script type="text/javascript">

    window.onload = function() {

       window.location = 'http://adres.pl';

    }
    </script>
    </head>
    <body></body>

    </html>
     {/codecitation}

    Adres nie musi wcale odnosić się do innej strony w sieci, może to być np.:

    {codecitation} window.location = 'jakas_podstrona/na_tym/serwisie.htm'; {/codecitation}

    Nie musi być to także wywoływane na zdarzenie onload. Można użyć tego w zwykłej funkcji lub przypisać do zdarzenia onclick itp.

    Read more

    Data po polsku PDF Drukuj Napisz e-mail
    Wpisał %s Patryk yarpo Jar
    poniedziałek, 21 września 2009 20:56
    Java Script / Artykuły JS

    Choć za język programowania uznaje się powszechnie angielski, wcale nie znaczy to, że nie można wyświetlać na stronie informacji w dowolnym języku, np. po polsku.

    {codecitation} <html>
    <head>
    <script type="text/javascript">
    function getDateStr(){
        var DayName = ['niedziela', 'poniedzialek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota'];
        var MonthName = ["stycznia ", "lutego ", "marca ", "kwietnia ", "maja ", "czerwca ", "lipca ", "sierpnia ", "września ", "października ", "listopada ", "grudnia "];

        var Today = new Date();
        var WeekDay = Today.getDay();
        var Month = Today.getMonth();
        var Day = Today.getDate();
        var Year = Today.getFullYear();

        if(Year <= 99) {
            Year += 1900;
        }   

        return DayName[WeekDay] + "," + " " + Day + " " + MonthName[Month] + ", " + Year + " r.";
    }
    </script>
    </head>
    <body>
     <script type="text/javascript">document.write("Dzisiaj jest " + getDateStr())</script>
    </body>
    </html> {/codecitation}

    Wyświetli to, np. (dla 21 września 2009 r.):

    Dzisiaj jest poniedzialek, 21 września , 2009r.

    Read more

    Data po polsku PDF Drukuj Napisz e-mail
    Wpisał %s Patryk yarpo Jar
    poniedziałek, 21 września 2009 20:45
    Java Script / Artykuły JS

    Mimo, że językiem programowania jest język angielski, to wcale nie oznacza, że nie można wyświetlać informacji w dowolnym języku. Starczy tylko odpowiednio zinterpretować dane:

    {codecitation class='brush: php'} <html>

    <head>

    <script type="text/javascript">

    function getDateStr(){

        var DayName = ['niedziela', 'poniedzialek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota'];

        var MonthName = ["stycznia ", "lutego ", "marca ", "kwietnia ", "maja ", "czerwca ", "lipca ", "sierpnia ", "września ", "października ", "listopada ", "grudnia "];

     

        var Today = new Date();

        var WeekDay = Today.getDay();

        var Month = Today.getMonth();

        var Day = Today.getDate();

        var Year = Today.getFullYear();

     

        if(Year <= 99) {

            Year += 1900;

        }   

     

        return DayName[WeekDay] + "," + " " + Day + " " + MonthName[Month] + ", " + Year + " r.";

    }

    </script>

    </head>

    <body>

       <script type="text/javascript">document.write("Dzisiaj jest " + getDateStr())</script>

    </body>

    </html> {/codecitation}

     

    Taki kod zwróc np. (dla 21 IX 09 r.):

    Dzisiaj jest poniedzialek, 21 września , 2009r.

    Read more
    Zmieniony ( poniedziałek, 26 kwietnia 2010 21:45 )

    Strona 5 z 13
    << Początek < Poprzednia 1 2 3 4 5 6 7 8 9 10 Następna > Ostatnie >>