вторник, 21 декабря 2010 г.

Получение доступа к содержимому frame/iframe на jQuery

На русскоязычных ресурсах ни чего толкового не нашел, решил описать свои методы получения содержимого фреймов.
Получение содержимого у iframe:
<html>
  <head>
    <title>Frame page</title>
  </head>
  <body>
    <frame name="framename" id="myframe" src="page1.html"></frame>
    <iframe name="iframename" id="myiframe" src="page2.html"></iframe>
  </body>
</html>

Выберем все ссылки из iFrame:
$("#myiframe").contents().find("a");

Данная конструкция не работает для простых фреймов, есть другой вариант обращения к содержимому элемента frame
frame=window.parent.frames[0].document;
$("*",frame).find("a");

среда, 15 декабря 2010 г.

Программный вызов обработчика события onChange у элемента SELECT

Ни как не получалось выполнить программно событие у элемента. Все описанные действия в Интернете не рабочие. Пробовал вызвать событие onClick, как советовали, все безрезультатно.
Решение оказалось очень простым. Событие onChange вызывается, когда элемент теряет фокус. Для программного вызова события, нужно установить фокус на элемент, изменить значение и перевести фокус на другой элемент.
Пример на jQuery:
Форма:
<form>
    <select id="sel" name="sel" onchange="change()">
        <option value="">Any</option>
        <option value="1">Item1</option>
        <option value="2">Item2</option>
    </select>
    <input type="text" value="" name="txt" id="txt">
</form>  

Скрипт:
<script>
function change(){
    alert("Selected item"+$("#sel").val()); 
}
$("#sel").focus();
$("#sel").children("option[value='1']").attr("selected","selected");
$("#txt").focus();
</script>

вторник, 14 декабря 2010 г.

Улучшение качества звука в Kubuntu 10.04

При стандартной установленной системе звук у меня работал плохо, были слышны щелчки, со звуком могла работать только одна звуковая карта. Сильно описывать не буду так как в Интернете есть много статей по устранению данной проблемы, больше опишу про фиксы и настройку отдельных программ.

Для начала сносим PulseAudio и устанавливаем OSS4 по инструкции:
http://forum.ubuntu.ru/index.php?topic=129285.0

После всего этого имеем нормальный звук, отсутствие щелчков и одновременная работа со звуком несколько приложений. Но имеются некоторые неудобства:
1. На ноутбуке не работают клавиши регулировки громкости (Это понятно так как Kmix в KDE4 не поддерживает OSS4).
2. Отсутствие звука в Skype 2.1 (в отличии от предыдущей версии из него выкинута поддержка OSS).
3. Отвратительный звук с VMware.

Теперь раскажу про решение этих проблем:
Для управления звуком с помощью стандартных клавиш нужно создать три скрипта:
mute.sh
#!/bin/sh
CTRL=vmix0-outvol
touch $HOME/.volume
VOLUME=$(cat $HOME/.volume)
CURRENT=$(ossmix | grep $CTRL | awk '{print $4}' | awk -F : '{print $1}')
if [ $CURRENT = "0.0" ]; then
      ossmix $CTRL $VOLUME
      > $HOME/.volume
else
      VOLUME=$(ossmix | grep $CTRL | awk '{print $4}' | awk -F : '{print $1}')
      ossmix $CTRL 0
      echo $VOLUME > $HOME/.volume
fi
lowervolume.sh
#!/bin/sh
CTRL=vmix0-outvol
VOL=$(ossmix | grep $CTRL | awk '{print $4}' | awk -F : '{print $1}')
VOL=$(echo $VOL | awk '{print $1-2}')
ossmix -- $CTRL $VOL
raisevolume.sh
#!/bin/sh
CTRL=vmix0-outvol
VOL=$(ossmix | grep $CTRL | awk '{print $4}' | awk -F : '{print $1}')
VOL=$(echo $VOL | awk '{print $1+2}')
ossmix -- $CTRL $VOL
Теперь заходим в Параметры системы -> Действия и назначаем горячие клавиши для скриптов. При назначении клавиш будет выдаваться предупреждение, что они уже назначены, смело жмем Да.
Выключить звук - mute.sh
Уменьшить громкость - lowervolume.sh
Увеличить громкость - raisevolume.sh
Теперь мы можем управлять звуком с помощью стандартных клавиш. В качестве замены Kmix предлагаю использовать ossxmix.

Для настройки звука в Skype и VMware нужно добавить эмуляцию ALSA.
Нам понадобиться установить пакет libasound2-plugins
sudo apt-get install libasound2-plugins
Создаем файл ~/.asoundrc с содержимым
pcm.!default
{
type oss
device /dev/dsp
}
mixer.!default
{
type oss
device /dev/dsp
}
Теперь у нас работает звук в Skype и имеем чистый звук в VMware.

Не работает upload на Kubuntu

Не работала загрузка файлов на FTP в Kubuntu.
Для интернета использовался модем Huawei E1550 (Мобильный ОГО UTEL).
Решение очень простое. Нужно понизить MTU до 1400.
Делается это с помощью команды
ifconfig ppp0 mtu 1400
Либо прописать в опциях ppp
В файл /etc/ppp/options вставить строку mtu 1400