Спасибо за ответ. Я думал с точки зрения возможности запуска приложений (например, электронных книг), которые не доступны для Ubuntu. В настоящее время нет АПК thumbnailer в Linux. Как только вы запустите его, просто сделать принт скрин, сохранить изображение и загрузить. Из идей здесь. Будет делать какие-то другие, если я нахожу то, что мне будет запостить ОП сказал `динамик-тест` - это тоже шум для него в дублировать вопрос, который должен быть закрыт в ближайшее время. Альтернативы? @fossfreedom видеть мои обновления... Хорошая находка. +1 за ответ на свой вопрос! Я просто использовал функцию обновление GUI, он автоматически обновлены ядра. Установщик включает в себя 3.2.0-23, я думаю? Теперь 3.2.0-29. Я на самом деле не думаю, что это ядра, что вызывает проблему, потому что звук был сломан перед установкой обновления. Я надеялся, что это обновление будет исправить проблемы с аудио, но это не изменило.

Мое приложение АСП работает безупречно в Windows IE, но когда я запускаю на Ubuntu в Firefox JavaScript не работает должным образом..

Ниже мой код Java скрипта.....

И я называю этот Java-скрипт на onFocus и onBlurсобытие. когда onBlur уволен из формата даты 1 цифра удалением в Ubuntu и Firefox.

пожалуйста, кто поможет.

функция параметра dateformat(vDateName, vDateValue, электронные, дата, дататип) {

vDateType = дататип;

// vDateName = имя объекта
// vDateValue = значение в поле проверяется
// э = событие
// дата 
// Правда = убедитесь, что vDateValue является допустимой датой
// Ложь = формат значения, вводимые в vDateValue только
// vDateType
// 1 = ММ/ДД/гггг
// 2 = гггг/ММ/ДД
// 3 = ДД/ММ/гггг


 //Ввести Тильда по первое число и можно проверить переменную информацию.
 если (vDateValue == "~")
{
 предупреждение("AppVersion = "+навигатор.appVersion+" \nNav. 4 версия = "+isNav4+" \nNav. 5 версия = "+isNav5+" \ние версия = "+isIE4+" \nyear на тип = "+vYearType+" тип nDate \ = "+vDateType+" \nSeparator = "+strSeperator);
 vDateName.значение = "";
vDateName.фокус();
 возвратите True;
}

 ВАР whichCode = (окна.Событие) ? е.что : электронная.код;

 // Проверить, чтобы увидеть, если сеператор уже присутствует.
 // обход дату, если в сепараторы и длиной более 8
 если (vDateValue.длина > 8 && isNav4)
{
 если ((vDateValue.метод indexOf("-") >= 1) || (vDateValue.метод indexOf("/") >= 1))
 возвратите True;
}

 //Ликвидировать все коды ASCII, которые не являются допустимыми
 ВАР alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFghijklmnopqrstuvwxyz/-";
 если (alphaCheck.метод indexOf(vDateValue) >= 1) 
{
 если (isNav4)
{
 vDateName.значение = "";
vDateName.фокус();
vDateName.выбрать();
 возвращает false;
}
еще
{
 vDateName.значение = vDateName.значение.функцию substr(0, (vDateValue.длина-1));
 возвращает false;
 } 
}
 если (whichCode == 8) //игнорировать Нетскейп значение для возврата. Т. е. не имеет значение
 возвращает false;
 еще 
{
 //Создаем числовые строковые значения для 0123456789/
 //Предоставленных кодов включают в себя как клавиатура и ценностей клавиатуры 

 ВАР strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
 если (strCheck.метод indexOf(whichCode) != -1) 
{
 если (isNav4) 
{
 если (((vDateValue.длина =1))
{
 предупреждение("неверная дата\ппожалуйста, введите повторно");
 vDateName.значение = "";
vDateName.фокус();
vDateName.выбрать();
 возвращает false;
}
 если (vDateValue.длина == 6 && дата) 
{
 ВАР mDay = vDateName.значение.функцию substr(2,2);
 ВАР mMonth = vDateName.значение.функцию substr(0,2);
 ВАР mYear = vDateName.значение.функцию substr(4,4)

 //Закрывать две цифры года на 4-значный год
 если (mYear.длина == 2 && vYearType == 4) 
{
 ВАР mToday = новая дата();

 //Если в году больше 30 лет используют 19, в противном случае использовать 20
 ВАР checkYear = mToday.getFullYear() + 30; 
 ВАР mCheckYear = '20' + mYear;
 если (mCheckYear >= checkYear)
 mYear = '19' + mYear;
еще
 mYear = '20' + mYear;
}
 ВАР vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;

 если (!dateValid(vDateValueCheck)) 
{
 предупреждение("неверная дата\ппожалуйста, введите повторно");
 vDateName.значение = "";
vDateName.фокус();
vDateName.выбрать();
 возвращает false;
}
 возвратите True;

}
еще
{
 // Форматирование даты для проверки и установить дату типа 1


 если (vDateValue.длина >= 8 && дата) 
{
 если (vDateType == 1) // ммддгггг
{
 ВАР mDay = vDateName.значение.функцию substr(2,2);
 ВАР mMonth = vDateName.значение.функцию substr(0,2);
 ВАР mYear = vDateName.значение.функцию substr(4,4)
 vDateName.значение = mMonth+strSeperator+mDay+strSeperator+mYear;
}
 если (vDateType == 2) // ггггммдд
{
 ВАР mYear = vDateName.значение.функцию substr(0,4)
 ВАР mMonth = vDateName.значение.функцию substr(4,2);
 ВАР mDay = vDateName.значение.функцию substr(6,2);
 vDateName.значение = mYear+strSeperator+mMonth+strSeperator+mDay;
}
 если (vDateType == 3) // ддммгггг
{
 ВАР mMonth = vDateName.значение.функцию substr(2,2);
 ВАР mDay = vDateName.значение.функцию substr(0,2);
 ВАР mYear = vDateName.значение.функцию substr(4,4)
 vDateName.значение = mDay+strSeperator+mMonth+strSeperator+mYear;
}

 //Создаем временную переменную для хранения Дататип и изменения
 //в Дататип к 1 для проверки.

 ВАР vDateTypeTemp = vDateType;
 vDateType = 1;
 ВАР vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;

 если (!dateValid(vDateValueCheck)) 
{
 предупреждение("неверная дата\ппожалуйста, введите повторно");
 vDateType = vDateTypeTemp;
 vDateName.значение = "";
vDateName.фокус();
vDateName.выбрать();
 возвращает false;
}
 vDateType = vDateTypeTemp;
 возвратите True;
}
еще
{
 если (((vDateValue.длина =1))
{
 предупреждение("неверная дата\ппожалуйста, введите повторно");
 vDateName.значение = "";
vDateName.фокус();
vDateName.выбрать();
 возвращает false;
}
}
}
}
 еще 
{
 // Для isNav проверить
 если (((vDateValue.длина =1))
{
 предупреждение("неверная дата\ппожалуйста, введите повторно");
 vDateName.значение = "";
vDateName.фокус();
 возвратите True;
}

 // Переформатировать дату в формате, который может быть проверен. ММ/ДД/гггг


 если (vDateValue.длина >= 8 && дата) 
{

 // Дополнительных форматов даты могут быть введены здесь и разбирается в
 // допустимый формат даты, процедура проверки будет признать.

 если (vDateType == 1) // ММ/ДД/гггг
{
 ВАР mMonth = vDateName.значение.функцию substr(0,2);
 ВАР mDay = vDateName.значение.функцию substr(3,2);
 ВАР mYear = vDateName.значение.функцию substr(6,4)
}
 если (vDateType == 2) // гггг/ММ/ДД
{
 ВАР mYear = vDateName.значение.функцию substr(0,4)
 ВАР mMonth = vDateName.значение.функцию substr(5,2);
 ВАР mDay = vDateName.значение.функцию substr(8,2);
}
 если (vDateType == 3) // ДД/ММ/гггг
{
 ВАР mDay = vDateName.значение.функцию substr(0,2);
 ВАР mMonth = vDateName.значение.функцию substr(3,2);
 ВАР mYear = vDateName.значение.функцию substr(6,4)
}
 если (vYearLength == 4)
{
 если (mYear.длина = checkYear)
 mYear = '19' + mYear;
еще
 mYear = '20' + mYear;
 vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;

 // Сохранить новое значение обратно в поле. Эта функция будет
 // не работы с датой типа 2 С года вводится в первую очередь.

 если (vDateTypeTemp == 1) // ММ/ДД/гггг
 vDateName.значение = mMonth+strSeperator+mDay+strSeperator+mYear;
 если (vDateTypeTemp == 3) // ДД/ММ/гггг
 vDateName.значение = mDay+strSeperator+mMonth+strSeperator+mYear;

 } 


 если (!dateValid(vDateValueCheck)) 
{
 предупреждение("неверная дата\ппожалуйста, введите повторно");
 vDateType = vDateTypeTemp;
 vDateName.значение = "";
vDateName.фокус();
 возвратите True;
}
 vDateType = vDateTypeTemp;
 возвратите True;

}
еще
{

 если (vDateType == 1)
{
 если (vDateValue.длина == 2) 
{
 vDateName.значение = vDateValue+strSeperator;
}
 если (vDateValue.длина == 5) 
{
 vDateName.значение = vDateValue+strSeperator;
}
}
 если (vDateType == 2)
{
 если (vDateValue.длина == 4) 
{
 vDateName.значение = vDateValue+strSeperator;
}
 если (vDateValue.длина == 7) 
{
 vDateName.значение = vDateValue+strSeperator;
}
 } 
 если (vDateType == 3)
{
 если (vDateValue.длина == 2) 
{
 vDateName.значение = vDateValue+strSeperator;
}
 если (vDateValue.длина == 5) 
{
 vDateName.значение = vDateValue+strSeperator;
}
}
 возвратите True;
}
}
 если (vDateValue.длина == 10 && дата) 
{
 если (!dateValid(vDateName)) 
{
// Раскомментировать следующую строку кода для отладки dateValid() функция сообщения об ошибках 
// оповещения(ошибаться); 
 предупреждение("неверная дата\ппожалуйста, введите повторно");
vDateName.фокус();
vDateName.выбрать();
}
}
 возвращает false;
}
 еще 
{
 // Если значение не в строку, возвращает строку и последний минус
 // ключ вошел.
 если (isNav4)
{
 vDateName.значение = "";
vDateName.фокус();
vDateName.выбрать();
 возвращает false;
}
еще
{
 vDateName.значение = vDateName.значение.функцию substr(0, (vDateValue.длина-1));
 возвращает false;
}
}
}
}