Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> код не работает в FF и Opera 
:(
    Опции темы
DEER
Дата 8.9.2005, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: 2
Всего: 13



Здравствуйте, помогие пож.
Код должен работать в IE и FF,
но работает почему то только в IE...

Должен создаваться object Box который создает новый DIV, и должен быть метод moveBox, который соотв его двигает по экрану.
Код

<html>
<body>
<table border="0">
<tr>
  <td align="center"><Input  type="button" value="create new div" onclick="create()"/></td><td align="center"></td><td align="center"><Input  type="button" value="move div" onclick="move()"/></td><td align="center"></td>
</tr>
<tr>
 <td align="center">Text in new div</td><td align="center"><Input type="text" id="tet"/></td>
</tr>
<tr>
 <td align="center">Width</td><td><Input type="text" id="width"/></td>
 <td align="center">Height</td><td><Input type="text" id="height"/></td>
</tr>
<tr>
 <td align="center">Left position</td><td><Input type="text" id="left"/></td>
 <td align="center">Top position</td><td><Input type="text" id="top"/></td>
</tr>
</table>

</body>

</html>

<script>
 var myBox;
 function create()
 {
   var oText = document.getElementById("tet");
   var owidth = document.getElementById("width");
   var oheight = document.getElementById("height");
   var oleft = document.getElementById("left");
   var otop = document.getElementById("top");

   myBox = new Box(oText.value, owidth.value, oheight.value, oleft.value, otop.value);
 }
 function move()
 {
   var oleft = document.getElementById("left");
   var otop = document.getElementById("top");

   myBox.moveBox(oleft.value, otop.value);
 }
 function Box(bodyText, width, height, left, top)
 {
   this.NewDiv = document.createElement("<div style='padding:5px;width:"+width+"px;height:"+height+"px;background-color:#eeeeee;position:absolute;left:"+left+"px;top:"+top+"px;'>");
   this.NewDiv.insertAdjacentText("afterBegin", bodyText);
   document.body.insertBefore(this.NewDiv);
   this.moveBox = moveBox;

 }
  function moveBox(left, top)
  {
   this.NewDiv.style.left = left+"px"; 
   this.NewDiv.style.top = top+"px"; 
  }
</script>


Исправте пожлст, кто сможет!


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Sardar
Дата 8.9.2005, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Во первых код не работает даже в ИЕ.
Во вторых всегда выкладывай смысл кода(твою задачу), не всегда хочеться разбираться в лабуде 10 летней давности smile
В третьих времени ноль что бы писать тебе готовое решение, просто наведу на мысль:
  • document.createElement принимает только имя тега, ИЕ может принимать полную разметку, но это отхождение от W3C DOM 1 спецификации и по моему созданно как патчь к его кривым input:text name.
  • insertAdjacentText - функция появившаяся по моему за долго до W3C DOM, естественнно не поддерживаеться никем кроме ИЕ. Пользуйся (document.createTextNode, appendChild) или innerHTML.
В остальном должно работать.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
DEER
Дата 8.9.2005, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: 2
Всего: 13



Задачу я написал
Цитата
Должен создаваться object Box который создает новый DIV, и должен быть метод moveBox, который соотв его двигает по экрану


Цитата
document.createElement принимает только имя тега,

как должен создаваться DIV?
Код

this.NewDiv = document.createElement("div");

так?
Цитата

insertAdjacentText - функция появившаяся по моему за долго до W3C DOM, естественнно не поддерживаеться никем кроме ИЕ. Пользуйся (document.createTextNode, appendChild) или innerHTML.

просто не нашел в MSDN как по другому можно написать что нить в DIV.
попробовал добавить DIV так

Код

   this.oDiv=document.createElement("DIV");
   this.oDiv.appendChild("oDiv");
   document.body.appendChild(oDiv);

тоже ругаеться
не совсем что то разобрался
smile
Добавлено @ 13:11
Всё разобрался!
Спасибо


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Sardar
Дата 8.9.2005, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Забей на MSDN, читай рекомендации W3C: http://www.w3.org/TR/2000/WD-DOM-Level-1-2...l-one-core.html

Цитата(DEER @ 8.9.2005, 12:06)
как должен создаваться DIV?

Да, var div=document.createElement('div');

Цитата(DEER @ 8.9.2005, 12:06)
просто не нашел в MSDN как по другому можно написать что нить в DIV.

Можно проще чере div.innerHTML - сразу вёрстку вставляешь. Можно через innerText/textContent - но может сглючить, лучше: div.appendChild(document.createTextNode('твой текст'));

Цитата(DEER @ 8.9.2005, 12:06)
Всё разобрался!
Спасибо

Всегда выкладывай решение, другим тоже интересно smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
DEER
Дата 9.9.2005, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: 2
Всего: 13



Цитата

Можно проще чере div.innerHTML - сразу вёрстку вставляешь.

В задании было сказано, что надо это сделать без document.write и без innerText\innerHtml smile

Вот моё решение
Код

<html>
<body>
<table border="0">
<tr>
  <td align="center"><Input  type="button" value="create new div" onclick="create()"/></td><td align="center"></td><td align="center"><Input  type="button" value="move div" onclick="move()"/></td><td align="center"></td>
</tr>
<tr>
 <td align="center">Text in new div</td><td align="center"><Input type="text" id="tet"/></td>
</tr>
<tr>
 <td align="center">Width</td><td><Input type="text" id="width"/></td>
 <td align="center">Height</td><td><Input type="text" id="height"/></td>
</tr>
<tr>
 <td align="center">Left position</td><td><Input type="text" id="left"/></td>
 <td align="center">Top position</td><td><Input type="text" id="top"/></td>
</tr>
</table>

</body>

</html>

<script language="JavaScript">
 var myBox;
 function create()
 {
   var oText = document.getElementById("tet");
   var owidth = document.getElementById("width");
   var oheight = document.getElementById("height");
   var oleft = document.getElementById("left");
   var otop = document.getElementById("top");

   myBox = new Box(oText.value, owidth.value, oheight.value, oleft.value, otop.value);
 }
 function move()
 {
   var oleft = document.getElementById("left");
   var otop = document.getElementById("top");

   myBox.moveBox(oleft.value, otop.value);
 }
 function Box(bodyText, width, height, left, top)
 {
   this.NewDiv = document.createElement("div");
   document.body.appendChild(this.NewDiv);
   var oNode = document.createTextNode(bodyText);
   this.NewDiv.appendChild(oNode);
   this.NewDiv.style.padding = "5px";
   this.NewDiv.style.backgroundColor = "#eeeeee";
   this.NewDiv.style.position = "absolute";
   this.NewDiv.style.left = left+"px";
   this.NewDiv.style.top = top+"px";
   this.NewDiv.style.height = height+"px";
   this.NewDiv.style.width = width+"px";
   this.moveBox = moveBox;

 }
  function moveBox(left, top)
  {
   this.NewDiv.style.left = left+"px"; 
   this.NewDiv.style.top = top+"px"; 
  }
</script>



Это сообщение отредактировал(а) Aliance - 9.9.2005, 16:06


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0562 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.