Września 2009
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
|
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
|
|
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 )
|
|
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
|
|
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
|
|
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:
- i--
- inna_zmienna = 4
- 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
|
|
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
|
|
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
|
|
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
|
|
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 >>
|