JavaScript в Linux

Автор: mmb-masa Дата: 13.09.2007 22:16 В HTML странице имеется скрипт, который создаёт div-ами динамические объекты. В ОС семейства виндовс функция, которая создаёт объекты и сразу назначает нужные координаты положения на экране, работает без проблем. В ASP 11.2 (в других linux не проверял) так не работает (на экране объекты разбросанны непонятным способом). А если создавать с жестко заданной координатой, а потом в другой функции назначить каждому объекту нужную координату, то работает! Вот кусок кода:
---
function create_(mnx,mny)
{
y=mny;
for(i=1;i<=mnc;i++)
{
s1="<div id='mn"+i+"' style='position:absolute;left="+mnx+";top="+y+"'>";
s2="<img id='imn"+i+"' src='"+mn[i-1]+"' onMouseOver=\"f_mn('mn"+i+"')\" onMouseOut=\"no_f_mn('mn"+i+"',"+mnx+","+y+";-)\">";
s3="</div>";
document.write(s1+s2+s3);
y=y+7+document.images["imn"+i].height;
}
}
---
Re: JavaScript в Linux 21.11.2007 18:36Юрий Клещетников А у меня в цикле фор происходит такое зависание, что приходится снимать процессы.
В JS я не так силён посмотрю в офлайне, проверю и напишу ответ позже.
Re: JavaScript в Linux 04.03.2008 09:00Юрий Клещетников По-моему это проблема не с JavaScript, а с CSS.
Firefox и IE по разному воспринимают относительне координаты.
Если Вы заметили, то, и HTML, и JavaScript имеют достаточно различий,
чтобы для этих браузеров создавать 2 функции, загружаемые параметром if
Один сценарий лучше писать для Линукса, другой для Виндовса.
А ещё лучше указывать версию браузера или версию языка JavaScrip.
Почитайте про объект navigator,
который поможет автоматически определить тип браузера и запускать нужный сценарий.
Я раньше тоже увлекаля web-дизайном, но до таких тонкостей не дошёл....
Re: JavaScript в Linux 04.03.2008 09:26wusup >В ОС семейства виндовс функция, которая создаёт объекты и сразу назначает нужные координаты положения на экране, работает без проблем.

ОС тут не причем, у IE отличный DOM от общепринятого.

>В ASP 11.2 (в других linux не проверял) так не работает (на экране объекты разбросанны непонятным способом).

Браузер и ОС вещи очень разные.

>s1="<div id='mn"+i+"' style='position:absolute;left="+mnx+";top="+y+"'>";

Плохой стиль программирования positition:absolute на разных разрешениях экрана будет бегать, возможно у вас как раз такой случай.
Re: JavaScript в Linux 21.03.2008 16:12Игорёк
Юрий Клещетников, совершенно прав, для каждой ОС лучше иметь свой JavaScript код!
Для разработчика просто необходимо знание того, что и как выполняется в разных системах, для Linux, где искать, думаю, знаете. Для Windows настоятельно рекомендую почитать MSDN (только не плюйтесь), т.к. это самый крупный справочник по программированию, пусть под Windows, но он доступен на сайте MS бесплатно и вскоре будет переведен полностью на русский язык.

Учитывая, что юзеров с IE дофига &#8211; делаем вывод: врага нужно знать в лицо! И так, читаем:

-----------------------------------------------------------------------------------
Syntax

[ sVersion = ] object.appVersion

Possible Values

sVersion - String that receives information about the browser's platform and version.

The property is read-only. The property has no default value.

Remarks

The appVersion property returns a value based on the browser name, browser version, and platform. This syntax shows the format of the returned value.

clientVersion (platform; information; extraInformation)
or
5.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)

ПЕРЕВОД

Синтаксис (в [] необязательный элемент)

[sVersion=]navigator.AppVersion

Возможные значения

sVersion &#8211; Строка, которая предоставляет информацию о браузере клиента.

Эта строка только для чтения. Свойство не имеет значения по умолчанию.

Примечания

Свойство appVersion возвращает имя браузера, версию браузера и платформу. Этот синтаксис показывает формат возвращаемого значения:

версияКлиента (платформа; информация; дополнительнаяИнформация)
или
5.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)

--------------------------------------------------------

Если есть желание поработать с оператором if, то код следующий

var IsLinux = true;

if (window.clientInformation.userAgent.indexOf( "MSIE " ) > 0)
{
IsLinux = false
}

if (IsLinux == true)
{
}
else
{
}

А можно и так:

if (navigator.appName == имяБроузера)
{
}
Re: JavaScript в Linux 21.03.2008 16:46mmb-masa Большое спасибо всем отвечающим. Проблема была решена с другой стороны. Сейчас и не надо знать в какой ОС происходит исполнение. Пробовать по другому для меня уже не актуально.
Ещё раз спасибо!
Re: JavaScript в Linux 23.03.2008 17:45wusup >Юрий Клещетников, совершенно прав, для каждой ОС лучше иметь свой JavaScript код

Лоботомия?
Re: JavaScript в Linux 23.03.2008 21:04Юрий Клещетников Повторяю свои же слова:
>C'est super, mais je ne parle pas anglais !
А теперь внимательно читаем выше:
>Syntax
>....
>ПЕРЕВОД....
И медленно, но верно начинаем соображать!
Дааа, мыы линнукссоииды деелллаем всё медленннноооо,
нно аккурааатнооо!!!!
RSS-материал