Archive for październik, 2007

KBlogger - dla leniwych

Właśnie testuję sobie narzędzie KBlogger do dodawania wpisów bez wchodzenia nawet do przeglądarki :). Nie ma to jak lenistwo. Co prawda na chwilę obecną wydaje się być ciut ograniczone w działaniu, ale może dzięki niemu i tak będize ciut więcej życia tutaj :)

Dopisek juz ze strony:
Jednak KBlogger nie chce być dobry - przesłął nieprawidłową tate, przez datę publikacji ustawiło na 1 sty 1970 (timestamp 0). Również nie wybrało prawidłowo kategorii…

Kolejna wpadka Opery, czyli Opera jest zła part 2

Po tym jak już raz znalazłem błąd w Operze, który został naprawiony przyszła pora na kolejne starcie. Nie wiem, czy po prostu w Operze jest tyle błędów, czy może ja mam jedynie takie szczęście ciągle na nie wpadać…

W każdym bądź razie do rzeczy: Wszystko ogranicza się do tego, że Opera nie wykonuje akcji onClick() na ukrytych polach formularza.

Przykład jest trochę zakręcony, bo długo myślałem i kombinowałem jak go przedstawić :) Całośc powinna działać tak:

  1. Klikam na któryś <label> i powinno się wybrać od razu właściwe pole radio.
  2. Zaznaczenie pola radio powinno uruchomić akcję onClick, które wyświetla alert() z wartością zaznaczonego radio.

W Firefoksie działa wszystko prawidłowo - pojawia się jak powinno pole alert. Natomiast w operze nic się nie dzieje. A gdy zlikwiduje się regułkę ukrywającą pola (display:none) - nagle wszystko zaczęło działać.
Znalezienie tego błędu zajęło mi dwa dni - ciekawe ile jeszcze jest takich niespodzianek w Operze… Na szczęście działa chociaż onChange()…

Kod testowy:

 <style>
  input[type='radio'] {display:none}
</style>

<form id="f" action="#" method="get">
  <input type="radio" name="r" id="r1" value="radio1"
     onClick="fsubmit()"/><label for="r1">Radio 1</label><br/>
  <input type="radio" name="r" id="r2" value="radio2"
     onClick="fsubmit()"/><label for="r2">Radio 2</label><br/>
</form>

<script type="text/javascript">

function getCheckedValue(name)  {
  inputs = document.getElementsByTagName('input');
  for(i=0; i<inputs.length; i++) {
    if(inputs[i].name==name && inputs[i].checked == true) {
      return inputs[i].value;
    }
  }
  return 'none selected';
}

function $(o) {
  return document.getElementById(o);
}

function fsubmit() {
  alert('Radio value: '+getCheckedValue('r'));
}

</script>