TechLife devBlog

MyBlogLog XHTML bug

Internet 17th Aug 2007

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 z jogger.pl

Tomasz Guzik 18.08.2007 / 01:24

Gdy nie mamy dostępu do PHP zawsze można spróbować triku z tagiem object :)

trójkąt 18.08.2007 / 01:54

Próbowałem tak:

<object 
codebase="http://pub.mybloglog.com/comm2.php?mblID=2007081613490964&amp;c_width=170&amp;c_sn_opt=n&amp;c_rows=5&amp;c_img_size=f&amp;c_heading_text=Ostatni+czytelnicy&amp;c_color_heading_bg=000000&amp;c_color_heading=FF6600&amp;c_color_link_bg=000000&amp;c_color_link=66CCFF&amp;c_color_bottom_bg=000000" 
type="text/javascript" 
codetype="text/javascript">
</object>

Błędu już nie ma, ale nic się też nie wyświetla.

Tomasz Guzik 18.08.2007 / 02:05

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 :)

trójkąt 18.08.2007 / 12:25

Działa świetnie, tylko dla nie IE komentarz powinien wyglądać tak:

<!--[if IE]><![if !IE]><![endif]-->
...
<!--[if IE]><![endif]><![endif]-->
Dzięki!
trójkąt 18.08.2007 / 16:25

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.

plejeru 26.08.2007 / 19:53

a ja mam pytanie – jak zrobiles 3 kolumny w tym widgecie? nie moge sie tego w kodzie dopatrzec…

trójkąt 27.08.2007 / 07:42

Wystarczy ustawić c_width=165 i c_img_size=f w parametrach tego wygenerowanych kodu.

plejeru 27.08.2007 / 23:55

mhm, ok :) sprobuje w nowym szablonie zaimplementowac, dzieki



Komentarze