MyBlogLog XHTML bug
Internet 17 sierpnia 2007 o 22:52:49 | ☍ trackback
Wczoraj postanowiłem zinwigilować kto tak naprawdę tutaj zagląda. Oczywiście mój pasek adresu wycelował w MyBlogLog, który to ostatnimi czasy opanowuje przeróżne zakątki internetu. Szybka rejestracja, łapię widget, trochę go pokolorowałem, wstawiam. Pięknie! Nic nie widać.
A nie, jednak widać. FireBug mruga czerwonym tekstem, oznaczającym błąd i wyświetla o takie coś:
Object cannot be created in this context" code: "9
Pooglądałem sprawę z różnych stron, bo jak to, wszędzie działa tylko nie u mnie? No i znalazłem. Jak przystało na XHTML wysyłam go jako application/xhtml+xml. No prawie, bo właściwie typ mime jest negocjowany z przeglądarką i taki król internetu IE dostaje stronę jako nie wiadomo co, czyli text/html.
Podsumowując, MyBlogLog-owy skrypt, podobnie jak Google Maps nie działa z XHTML-em. No i cóż zrobić. Poszukałem na FAQ, znalazłem maila przeznaczonego do raportowania błędów i ładnie zraportowałem. Maila napisałem koło 1:00 w nocy, czyli o 19:00 czasu nowojorskiego i za kilka minut już miałem na blogu drużynę pierścienia.

Szybko też dostałem odpowiedź – oczywiście SOA#1(Standardowa Odpowiedź Administratora nr 1: U mnie działa). Zamiast przeczytać treść maila kliknęli na link (po tym jak już zmieniłem mimetype na text/html), zobaczyli że działa i dali sobie spokój :-)
Wyklepałem wiec szybki przykład i posłałem jeszcze raz. Skrypt przykładowy wygląda tak. Dziś dostałem odpowiedź, że mój mail został przekazany endżynierą. Zobaczymy co z tego będzie. Pewnie nic, ale czasami miło jest znaleźć oczywisty błąd w tak dużym serwisie i nie dostać odpowiedzi typu „tak wiemy, już nad tym pracujemy”.
Komentarze do notki
Gdy nie mamy dostępu do PHP zawsze można spróbować triku z tagiem object :)
Próbowałem tak:
<object
codebase="http://pub.mybloglog.com/comm2.php?mblID=2007081613490964&c_width=170&c_sn_opt=n&c_rows=5&c_img_size=f&c_heading_text=Ostatni+czytelnicy&c_color_heading_bg=000000&c_color_heading=FF6600&c_color_link_bg=000000&c_color_link=66CCFF&c_color_bottom_bg=000000"
type="text/javascript"
codetype="text/javascript">
</object>
Błędu już nie ma, ale nic się też nie wyświetla.
Chodziło mi o tzw. metodę na adsense :
1) Tworzymy plik .htm mający wyświetlać tylko listę odwiedzających (nazwijmy go „mbl.htm”)
2) Ładujemy na serwer
3) Wstawiamy ten kod w miejsce listy odwiedzających:
<div id="mbl">
<!--[if !IE]> <!-->
<object data="mbl.htm" type="text/html" />
<!--<![endif]-->
<!--[if IE]>
<script type="text/javascript" src="http://pub.mybloglog.com/comm2.php?mblID=..."></script>
<![endif]-->
</div>
Nie próbowałem w tym konkretnym przypadku, ale skoro z Adsense działało, to i tu powinno :)
Działa świetnie, tylko dla nie IE komentarz powinien wyglądać tak:
<!--[if IE]><![if !IE]><![endif]-->
...
<!--[if IE]><![endif]><![endif]-->
Dzięki!
Problem był jeszcze taki, że jak MBL wstawia się jako object, to linki do profilu otwierają się wewnątrz tego obiektu. Musiałem to pohakować starym dobrym jQuery i jakoś działa. Ale ogólnie to ten Widget jest okropnie zakodowany.
a ja mam pytanie – jak zrobiles 3 kolumny w tym widgecie? nie moge sie tego w kodzie dopatrzec…
Wystarczy ustawić c_width=165 i c_img_size=f w parametrach tego wygenerowanych kodu.
mhm, ok :) sprobuje w nowym szablonie zaimplementowac, dzieki