Kolega zadał mi ciekawe pytanie: czy jest możliwość dodania na joggerze własnego opisu z gadu?
- Pierwszy krok: stworzenie bramki gadu – posłużyłem się gotowym skryptem z http://forum.php.pl/index.php?showtopic=21568
- Zintegrowanie powstałego pliku z joggerem.
Moje pomysły są następujące:
- Użycie ajax’u do zmiany div’a przez document.getElementById() – moim zdaniem najbardziej eleganckie rozwiązanie, niestety gdy domeny są różne nie jest możliwe pobieranie danych z zewnętrznego serwera. Jest to występująca tutaj sytuacja.
- Wstrzyknięcie opisu przez include(‘plik’) w php – na joggerze niemożliwe do zrealizowania.
- Użycie iframe‘ów – skuteczne, ale niezgodne z specyfikacją xhtml.
Ktoś zna inne rozwiązanie?
Dla chętnych wersja AJAX:
Kod skryptu bramki – wystarczy uzupełnić numer bramki, hasło oraz sprawdzany numer – delikatnie zmodyfikowana wersja skryptu
Skrypt javascript – należy w nim zmienić zmienną adres – na położenie skryptu bramka.php, można też użyć tego skryptu, przesyłając metodą get poprzez zmienną numer swój numer gadu
Dla przykładu http://www.piio.info/opis.php?numer=1111111 zwróci w xml opis numeru 1111111
Aby dodać opis przez ajax do strony, dodajemy
- W części
- znacznik
– uruchomienie funkcji po załadowaniu strony
- w miejscu gdzie ma się wyświetlać opis dodajemy div’a
Gotowe! Możemy cieszyć się własnym opisem z gadu na naszej stronie.
Ps. Oczywiście, skrypt nie będzie zwracał opisu jeśli używamy opcji ‘tylko dla znajomych, a bramka nie jest na naszej liście kontaktów.
Przypomniałem sobie, że można zamiast <iframe> zastosować <object data=„costam.html” type=„text/html”>, ale podobnież ten znacznik nie jest zbyt dobrze wspierany
A co Ty się tak tą zgodnością przejmujesz ? Od paru błędów w validatorze jeszcze nikt nie umarł 😛
Po prostu zamiast rzucać XML-em opis, lepiej rzucić go po stronie serwera do postaci „skryptu” JS, w rodzaju
var opis = 'costamcostam';
i następnie po prostu w szablonie Joggera dodać sobie<script src="sciezka/do/pobierania/opisu.js">
i napisać sobie funkcję, która zmienną opis wrzuci gdzie trzeba czy to przy onloadzie czy gdziekolwiek. Bez zabawy z Ajaksem. Dużo serwisów tak robi, tylko rzuca np. JSON zamiast stringa jak u mnie w przykładzie.A jak już się przejmować zgodnością, ładnością i tak dalej, to zamiast atrybutu onload w body lepiej dodać już to wywołanie gdzieś w funkcji JS 😉
@kubarek: wychodzę z założenia, że skoro powstają standardy to pasowało by się ich trzymać 😉
@Ktos: Rzeczywiście, niepotrzebnie zaprzęgnąłem kobyłę do tej roboty. Twój pomysł wygląda bardzo prosto i sensownie, muszę to wypróbować.
Za dużo książek o AJAX’ie się naczytałem, i teraz próbuję wcielić przeczytane tam mądrości w życie.
Dzięki za rozwiązanie.