Полезная информация

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№104-06-2009 23:01:00

mulder
Участник
 
Группа: Members
Зарегистрирован: 30-08-2008
Сообщений: 13
UA: Firefox 3.0

HTML моделирование Firefox не корректно обрабатывет Переменные

Я очень люблю мозиллу, и часто люблю программировать в HTML недавно перешёл а работу со слоями.
Написал, как мне кажется, вполне сносый обработчик (не без помощи конечно :) ), который будет в любом браузере, работать и слои будут функционировать нормально. но я никак не ожидал, что браузера, ещё и по своему определяют переменные????

Здесь, я описываю обработчик, который определяет,что за браузер, и вписывает в переменную, именно ту команду работы, со слоем, которую сам же и поймёт...

Выделить код

Код:

<!-- ////////////////////////////////////////////Определяем браузер/////// -->
<map id="browser" /''name="firefox" /""name="sleipnir_gecko" "name="safari" ""name="konqueror" /name="ie" name="opera" name="lynx"> </map>
<script>
<!--
var browser_name=" "//Имя браузера, в которо открыта эта страница
var gpb=" " //глобальная переменная браузеров нужна для того, чтобы можно было обращаться правильно с помощью обработчика браузера со слоями и объектами

browser_name = document.getElementById('browser').getAttribute('name');//узнаём, что за браузер

if(browser_name == "firefox")(gpb = document.getElementById )
//if(browser_name == "sleipnir_gecko")(gpb =  )
//if(browser_name == "safari")(gpb =  )
//if(browser_name == "konqueror")(gpb =  )
if(browser_name == "ie")(gpb = document.all ) // Internet Explorer
if(browser_name == "opera")(gpb = document.getElementById ) // Opera
//if(browser_name == "lynx")(gpb =  )
//-->
</script>
<!-- //////////////////////////////END////////////////////////////////// -->

Тут, я представляю, часть кода, где при наведении на один слой мышкой, другой слой, меняет свои коардинаты. И он их меняет. в множестве браузеров.
А в мозилле, нет. Пока в место (gpb) не в пишешь (document.getElementById).

Выделить код

Код:

<!-- ***********************************---МЕНЮ---************************************************************* -->
<DIV id="1000" class="menu0" style="z-index:1000;" onMouseover="gpb('800').style.left=150"> 
  
 <!-- ПЕРВАЯ КОЛОНКА МЕНЮ -->
 <div id="800" class="menu1" style=" z-index:900;"> <table width="150" border="1" cellspacing="" cellpadding=""><tr><td height="30" align="center"> <b>ГЛАВНАЯ</b> </td></tr></table> </div>  
 
</DIV>
<!-- ********************************************************************************************************** -->

вот такие пироги. Через переменную обращение к объекту никак. А на прямую всегда пожалуйста.

Может кто чего по советует..

Отсутствует

 

№204-06-2009 23:15:42

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 3.0
Веб-сайт

Re: HTML моделирование Firefox не корректно обрабатывет Переменные

Простите, но весь этот бред нужно выкинуть.
Во-первых, все браузеры понимают getElementById; во-вторых, style.left должно быть строкой с обязательным указанием единиц измерения, в третьих, id элементов не должен начинаться с цифры.

Итого, выглядеть ваш код должен примерно так

Выделить код

Код:

<div id="a1" onmouseover="document.getElementById('a2').style.left='150px'">
<div id="a2">....

Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№305-06-2009 00:38:05

Sergeys
Administrator
 
Группа: Administrators
Откуда: Moscow, Russia
Зарегистрирован: 23-01-2005
Сообщений: 14009
Веб-сайт

Re: HTML моделирование Firefox не корректно обрабатывет Переменные

Тема перенесена из форума «Firefox» в форум «Разработка».


Через сомнения приходим к истине. Цицерон

Отсутствует

 

№405-06-2009 21:33:49

mulder
Участник
 
Группа: Members
Зарегистрирован: 30-08-2008
Сообщений: 13
UA: Firefox 3.0

Re: HTML моделирование Firefox не корректно обрабатывет Переменные

Благодарю, за прямой, ответ. И правда, выкину половину, раз уже браузеры поумнели.

НО если я хочу использовать часть кода в переменных , что мне сделать тогда.
ведь, даже писанина по правилам. не приводит к результату.
Мозила (возможно) обрабатывает переменную, как строку, а значит, при вставке в обработчик, получится следующее:

Выделить код

Код:

<DIV id="a1000" class="menu0" style="z-index:1000;" onMouseover=""document.getElementById"('a800').style.left='150 px'">

или

Выделить код

Код:

<DIV id="a1000" class="menu0" style="z-index:1000;" onMouseover="'document.getElementById'('a800').style.left='150 px'">

Что само по себе обработчиком опеделяется, как невыполнимый код, а следовательно исключается из обработки.
Другого объяснения, этому, я пока не вижу.
Как мне поступить в этом случае, чтобы остальные браузеры, тоже не "ругались"

Может, есть в Ява определения типа переменной типа :

Выделить код

Код:

var operand_a:of string;
     operand_b:of smallint;
     operand_c:of char;
     operand_d:of просто обычный кусок кода, который надо вставить как он есть;

Уже становится интересно..:rolleyes:

Отредактировано mulder (05-06-2009 21:35:41)

Отсутствует

 

№506-06-2009 00:32:46

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 3.0
Веб-сайт

Re: HTML моделирование Firefox не корректно обрабатывет Переменные

Может вы лучше по-человечески объясните, что вам надо. Потому что в примерах выше написан очевидный бред.

И, кстати, единицы измерения должны писаться вплотную к значениям. Без пробелов.


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№606-06-2009 21:33:12

mulder
Участник
 
Группа: Members
Зарегистрирован: 30-08-2008
Сообщений: 13
UA: Firefox 3.0

Re: HTML моделирование Firefox не корректно обрабатывет Переменные

Это не принципиально, сейчас все браузеры нормально понимают PX с Пробелом  он пишется или без

Мне конкретно надо, чтобы мозилла могла вместо

Выделить код

Код:

<DIV id="a1000" class="menu0" style="z-index:1000;" onMouseover="document.getElementById('a800').style.left='150px'">

Нормально обрабатывать такое

Выделить код

Код:

<script language="JavaScript" type="text/javascript">
var kkk="document.getElementById";
</script>

<DIV id="a1000" class="menu0" style="z-index:1000;" onMouseover="kkk('a800').style.left='150px'">
.....

Остальные браузера с этим работают. А как сделать чтобы работала мозилла...
Это реально???

Отсутствует

 

№706-06-2009 21:49:54

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 3.0
Веб-сайт

Re: HTML моделирование Firefox не корректно обрабатывет Переменные

var kkk=document.getElementById; // без кавычек.

Это не принципиально, сейчас все браузеры нормально понимают PX с Пробелом  он пишется или без

Если в Quirks mode, то да. Но за квиркс в 2009 году надо больно бить.


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№808-06-2009 22:42:32

mulder
Участник
 
Группа: Members
Зарегистрирован: 30-08-2008
Сообщений: 13
UA: Firefox 3.0

Re: HTML моделирование Firefox не корректно обрабатывет Переменные

var kkk=document.getElementById; // без кавычек.

Это положение проблемы не меняет.

Пробовал и с кавычками, и без ковычек,
всё равно ничего путнего не выходит.
Я думаю, это баг построителя HTML разметки

Отсутствует

 

№908-06-2009 22:50:25

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 3.0
Веб-сайт

Re: HTML моделирование Firefox не корректно обрабатывет Переменные

mulder
Ссылку на тестовую страницу с багом, и с гарантией 99.9% я найду на ней ошибку. Например, вы пытаетесь обратиться к элементу, которого ещё не существует.


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№1012-06-2009 17:44:14

mulder
Участник
 
Группа: Members
Зарегистрирован: 30-08-2008
Сообщений: 13
UA: Firefox 3.0

Re: HTML моделирование Firefox не корректно обрабатывет Переменные

Ссылку на тестовую страницу с багом

http://narod.ru/disk/9786364000/menu.html.html

При наведении на  "меню№1", должна "меню №2" отпрыгивать в право.

Прошу. Жду с нетерпением результата.

Отредактировано mulder (12-06-2009 17:48:51)

Отсутствует

 

№1113-06-2009 17:14:11

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 3.0
Веб-сайт

Re: HTML моделирование Firefox не корректно обрабатывет Переменные

Если не сильно вдаваться в подробности, то вы скопировали функцию, но не её контекст. А getElementById ожидает, что будет запущена в контексте документа, а не непоймичего (на самом деле window).

Если уж очень хочется зачем-то сделать алиас для getElementById, то можно написать так:

Выделить код

Код:

sss=function(id){return document.getElementById(id);}

Хотя я знаю зачем это может быть нужно.

И почитайте по функции и методы в JS и как они работают.

P.S. Пишите единицы измерения!


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№1216-06-2009 22:08:21

mulder
Участник
 
Группа: Members
Зарегистрирован: 30-08-2008
Сообщений: 13
UA: Firefox 3.0

Re: HTML моделирование Firefox не корректно обрабатывет Переменные

Благодарю, мне теперь всё стало ясно.:D

А я то думал, что это в яве прикол такой функции без вводных переменных обозначать.
Пишу, и думаю... ну почему в делфи есть процедуры, и есть Функции. А в яве, всё всё через... .... функции
и всё только на глобальных переменных построено. Непорядок.

Но теперь то я понимаю, что плагиат, создателей явы пользу приносит :) , в общем теперь я вижу много общего между двумя языками.

Большое вам, огромное СПАСИБО. :):);)

Отсутствует

 

№1303-07-2009 13:14:50

Ванёк
Участник
 
Группа: Members
Зарегистрирован: 03-07-2009
Сообщений: 4
UA: Opera 9.6

Re: HTML моделирование Firefox не корректно обрабатывет Переменные

научи меня программироать я в этом полный ноль

Добавлено 03-07-2009 13:17:00
кто нибудь научите!!!!!!!!!!!!!!!!!!!

Отсутствует

 

№1404-07-2009 21:59:14

mulder
Участник
 
Группа: Members
Зарегистрирован: 30-08-2008
Сообщений: 13
UA: Firefox 3.0

Re: HTML моделирование Firefox не корректно обрабатывет Переменные

Для начала, скачай себе программу HTML Reader Я с неё начинал. Она вроде dream wawer только русская и бесплатная.
В ней уже много всего готового понатыкано, вставляй, и разбирай код.
Потом тебе обязательно помогут онлайн учебники, и электронные книги. Их ты тоже можешь найти в инернете, их тут валом.
Например http://www.postroika.ru/html/ Дальше сам... Удачи

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]