Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.09.2012, 18:52
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

IE innerHTML или innerText чем заменить?
В таблице из ячейке как выгрузить текст в переменную?
Ответить с цитированием
  #2 (permalink)  
Старый 07.09.2012, 19:12
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

innerText || textContent, innerHTML
Ответить с цитированием
  #3 (permalink)  
Старый 07.09.2012, 19:20
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

bes,
innerHTML,innerText в IE 8 не работает:
Сведения об ошибке на веб-странице

Сообщение: 'innerHTML' - есть null или не является объектом
Строка: 298
Символ: 1
Код: 0

textContent - сейчас проверю.
Ответить с цитированием
  #4 (permalink)  
Старый 07.09.2012, 19:22
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

тестовый пример
ошибка не в этом
Ответить с цитированием
  #5 (permalink)  
Старый 07.09.2012, 19:23
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от vitorrio
innerHTML,innerText в IE 8 не работает:
что за бред? вы на каком элементе их применяете? Они могут отсутствовать например на текстовых нодах но на элементах в ИЕ8 они всегда есть.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #6 (permalink)  
Старый 07.09.2012, 20:14
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

Да, нашел ошибку.. она была в этом:

var sosed=rod.previousElementSibling;

Этот метод не поддерживает, Нашел тут http://habrahabr.ru/post/54380/
скрипт и с помощью него как я понял будет поддерживать, но чет не работает..:

// Создаем новый элемент для дальнейших проверок
var element = document.createElement("div");

// Проверяем, что браузер не поддерживает ElementTraversal
if(typeof element.firstElementChild == "undefined") {

   // Создаем объект с набором методов
   var ElementTravrsal = {

     // Поиск первого дочернего элемента
     firstElementChild: function() {
       // Получаем первый дочерний узел
       var node = this.firstChild;
       // Находим следующий соседний узел пока не встретили элемент
       // или не получили значение null
       while(node && node.nodeType != 1) node = node.nextSibling;
       // Возвращаем найденный элемент или null
       return node;
     },

     // Поиск последнего дочернего элемента
     lastElementChild: function() {
       // Получаем последний дочерний узел
       var node = this.lastChild;
       // Находим предыдущий соседний узел пока не встретили элемент
       // или не получили значение null
       while(node && node.nodeType != 1) node = node.previousSibling;
       // Возвращаем найденный элемент или null
       return node;
     },

     // Поиск следующего соседнего элемента
     nextElementSibling: function() {
       // Объявляем переменную и инициализируем
       // ее ссылкой на текущий элемент
       var node = this;
       // Находим следующий соседний узел пока не встретили элемент
       // или не получили значение null
       do node = node.nextSibling
       while(node && node.nodeType != 1);
       // Возвращаем найденный элемент или null
       return node;
     },

     // Поиск предыдущего соседнего элемента
     previousElementSibling: function() {
       // Объявляем переменную и инициализируем
       // ее ссылкой на текущий элемент
       var node = this;
       // Находим предыдущий соседний узел пока не встретили элемент
       // или не получили значение null
       do node = node.previousSibling;
       while(node && node.nodeType != 1);
       // Возвращаем найденный элемент или null
       return node;
     },

     // Определение количества дочерних элементов
     // Проверяем, что браузер не поддерживает геттер children
     childElementCount: typeof element.children == "undefined" ? function() {
       // Браузер не поддерживает children,
       // поэтому получаем список всех дочерних узлов
       var list = this.childNodes,
       // определяем их количество
       i = list.length,
       // заводим счетчик элементов
       j = 0;
       // Проходя в цикле по всем дочерним узлам,
       while(i--)
           // если встретился элемент,
         if(list[i].nodeType == 1)
           // увеличиваем счетчик
           j++;
       // Возвращаем количество дочерних узлов или 0
       return j;
     } : function() {
       // Браузер поддерживает children,
       // поэтому получаем список всех дочерних элементов
       // и возвращаем их количество
       return this.children.length;
     }
   };

   // Создаем геттеры для IE8
   if(Object.defineProperty)
     for(var property in ElementTravrsal)
       if(ElementTravrsal.hasOwnProperty(property))
         Object.defineProperty(Element.prototype, property, {
           get: ElementTravrsal[property]
         });

   // для Firefox 2+ и Safari 3+
   if(Object.__defineGetter__)
     for(var property in ElementTravrsal)
       if(ElementTravrsal.hasOwnProperty(property))
         HTMLElement.prototype.__defineGetter__(property, ElementTravrsal[property]);

 }


И что мне теперь делать как прописать это : var sosed=rod.previousElementSibling; чтобы работало?
Ответить с цитированием
  #7 (permalink)  
Старый 07.09.2012, 20:44
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

Все-таки innerHTML тоже не работает:
var table=document.getElementById('table');
table.innerHTML=Storage.getItem('table');


Сведения об ошибке на веб-странице

Агент пользователя: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; .NET4.0E; WebMoney Advisor)
штамп времени: Fri, 7 Sep 2012 16:43:00 UTC


Сообщение: Неизвестная ошибка выполнения
Строка: 98
Символ: 1
Код: 0

table элемент определен его innerHTML даже отображается через alert... storage.table тоже определен и через alert можно посмотреть что там...
В чем может быть проблема?
Ответить с цитированием
  #8 (permalink)  
Старый 07.09.2012, 21:14
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от vitorrio
Все-таки innerHTML тоже не работает:
потому что элементу TABLE нельзя назначить innerHTML, он применим только блочным и инлайновым элементам, ну и еще к некоторым, например к TD таблично-строчный элемент
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #9 (permalink)  
Старый 07.09.2012, 21:24
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

devote,
А в опере и в mozile то все работает..
К tbody внутри таблицы можно?
Ответить с цитированием
  #10 (permalink)  
Старый 07.09.2012, 23:47
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от vitorrio
А в опере и в mozile то все работает..
нашел что сравнить... Ие всегда славился и славится своими запретами.

Сообщение от vitorrio
К tbody внутри таблицы можно?
не знаю, я не юзаю innerHTML для таблиц есть специальные методы, на подобии insertCell, insertRow вот их и нужно юзать
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чем заменить onChange? Viral Элементы интерфейса 13 04.12.2011 11:32
Чем заменить execCommand shtopor Javascript под браузер 9 05.11.2011 16:20
Чем можно заменить свойство contentEditable=true ? iMichaeli7 Javascript под браузер 5 20.10.2010 11:27
нужна программа для этого. Чем писать? javascript или php? spam-server Серверные языки и технологии 3 27.08.2009 00:52
Кем быть лучше?мужчиной или женщиной? gtarshik Оффтопик 1 02.01.2009 11:21