Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.08.2009, 02:12
Интересующийся
Отправить личное сообщение для SleepWalker Посмотреть профиль Найти все сообщения от SleepWalker
 
Регистрация: 09.11.2008
Сообщений: 15

innerHTML в FF
Как всегда у меня чувство, что я не умею пользоваться поиском и что такая тема где-то есть, но я ее найти несмог, так что зарание прошу прощения.
Мой скрипт должен менять содержимое внутри ссылки и выглядит ето примерно так:
a.innerHTML = 'tags' + a.inneHTML + 'tags';

Опера и ИЕ(визуально - правильно, но на содержимое иннерхтмл я ие не проверял) вроде бы нормально все выполняют, но вот ФФ почему-то содержимк тега <a> помещает в еще один тег, в итоге получаеться следушее: "tags<a>содержимое_тега_а</a>tags". Вот в этом собственно и заключаеться проблема. Я пробывал сначала собрать все в строку, а потом присвоить к a.innerHTML... До того как присвоил строка смотриться так как мне нужно ("tags_содержимое_тега_а_tags"), но как только я ее присваиваю, то теги ссылки снова появляються. То ж вроде бы уже строка 0о. В итоге цыкл зацылюется изза того что фф сам добавляет ссылки.
Мои знания JS не могут дать обьяснения этому "феномену". Может ктото из вас сталкивался с такой ситуацией? или может у когонибуть есть какието мысли на эту тему? помогите пожалуйста. зарание блогодарен
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2009, 02:21
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

у меня почему-то все ок:
<a href="#">qwe</a>
<script type="text/javascript">
var a = document.getElementsByTagName('a')[0];
a.innerHTML = 'tags' + a.innerHTML + 'tags';
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 15.08.2009, 10:56
Интересующийся
Отправить личное сообщение для SleepWalker Посмотреть профиль Найти все сообщения от SleepWalker
 
Регистрация: 09.11.2008
Сообщений: 15

а если так
a.innerHTML = '<div class="psl"></div><span style="float:left;">' + a.innerHTML + '</span><div class="psr"></div>';;
alert(a.innerHTML)

выдает такой алерт:
Цитата:
<div class="psl"></div><span style="float: left;"><a>qwe</a></span><div class="psr"></div>
и вроде бы ошибки в записи нигде нету
Ответить с цитированием
  #4 (permalink)  
Старый 15.08.2009, 12:07
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

да уж
поведение и вправду странное
у меня нету идей
могу только заметить, что помещение DIV-а внутрь ссылки не такая уж хорошая идея. точно не уверен, но по стандартам такие трюки недопустимы, ИМХО
после пары опытов, было выяснено, что любой текстовый нод, после первого DIV-а оборачивается в тег A.
Почему так сделано, мне непонятно, но лучше убрать из ссылки DIV-ы
Ответить с цитированием
  #5 (permalink)  
Старый 15.08.2009, 14:48
Интересующийся
Отправить личное сообщение для SleepWalker Посмотреть профиль Найти все сообщения от SleepWalker
 
Регистрация: 09.11.2008
Сообщений: 15

Gvozd,
ок. попытаюсь сделать подругому... надо уже всетаки изучить получше дом, ато я перемещаться по нему вообще не умею, только через id.

а в ссылку дивы я вставлял потому что так немного легче. мой сайтик на юкозе, а там нельзя добраться ко всему хтмл каркасу сайта, потому частично приходиться через JS..
спасибо за инфу.
Ответить с цитированием
  #6 (permalink)  
Старый 15.08.2009, 19:47
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

Цитата:
помещение DIV-а внутрь ссылки не такая уж хорошая идея. точно не уверен, но по стандартам такие трюки недопустимы, ИМХО
имхо можно отбросить, по стандарту потомками блочных элементов(<div>) могут быть строковые элементы(<a>), но не наоборот.
Ответить с цитированием
  #7 (permalink)  
Старый 15.08.2009, 21:47
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

twolf,
ИМХо я вставил, потому что я не сильно читал стандарты по этому поводу, и в основном основывался на здравом смысле и остаточных знаниях
Ответить с цитированием
  #8 (permalink)  
Старый 15.08.2009, 23:06
Интересующийся
Отправить личное сообщение для SleepWalker Посмотреть профиль Найти все сообщения от SleepWalker
 
Регистрация: 09.11.2008
Сообщений: 15

хм. а если ссылку через стили как блочной елемент выводить, она от етого не перестанет быть строковым елементом? (сори, это немного офтоп, да и вопрос немного тупой. я подозреваю ответ, но все же...)
Ответить с цитированием
  #9 (permalink)  
Старый 15.08.2009, 23:35
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

SleepWalker,
да. собственно для этого свойство display и придумано.

Gvozd,
да я вообще поддержать хотел. мол, всё верно.

Последний раз редактировалось twolf, 15.08.2009 в 23:43.
Ответить с цитированием
  #10 (permalink)  
Старый 16.08.2009, 00:18
Интересующийся
Отправить личное сообщение для SleepWalker Посмотреть профиль Найти все сообщения от SleepWalker
 
Регистрация: 09.11.2008
Сообщений: 15

аааа, ну так у меня ссылка как блочной елемент мне както не уютно было вставлять в нее дивы не делая при етом ее блочной, но всеравно переделывать прийдеться, вставлю дивы побокам от ссылки, ток щас вот нужно почитать о том как лучше ето сделать....
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
innerHTML and z-index ViZ0R Общие вопросы Javascript 5 12.08.2009 10:28
двойной innerHTML Лесной_Белк Элементы интерфейса 13 21.05.2009 02:25
JS to innerHTML helgi AJAX и COMET 4 07.12.2008 20:50
innerHTML HelpeR Events/DOM/Window 14 25.10.2008 14:14
ошибка с innerHTML Gekt0r Общие вопросы Javascript 15 21.08.2008 11:57