Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > innerText и textContent


Автор: Raily 7.7.2009, 14:10
У меня есть такой <div>:
Код

<div id="slct" style="overflow:auto"><input id="delall" type="button" value="del all" onClick="delAll();"><input id="saveFile" type="button" value="save file" onClick="saveFile();"></div>

И в него ещё элементы добавляются php-скриптом, вопрос такой - мне нужно выудить только текст из этого <div>, без html-разметки при помощи Java Script. Я написала следующий код:
Код

text=document.getElementById("slct").innerText;

Вопрос такой: а как можно innerText заменить на textContent, чтобы и Mozilla могла считывать текст из <div>? А то что-то нигде не могу найти нормального описания для работы с textContent.

Автор: bars80080 7.7.2009, 14:20
самое простое - закидывать в начало скриптов примерно такую штуку:

Код

var IE = false, IE6 = false, IE7 = false;
if(window.ActiveXObject) {
    IE = true;
    var uaVers = window.navigator.userAgent.substr(window.navigator.userAgent.indexOf('MSIE') + 5, 3);
    if(uaVers.slice(0, 1) == 6) { IE6 = true; }
    else { IE7 = true; }
}

и пользоваться:

Код

if(IE) { text=document.getElementById("slct").innerText; }
else { text=document.getElementById("slct").textContent; }



ну или в твоём случае можно проверку сделать прямо в коде

Код

if(window.ActiveXObject) { text=document.getElementById("slct").innerText; }
else { text=document.getElementById("slct").textContent; }


Автор: ksnk 7.7.2009, 17:08
Код

var el=document.getElementById("slct");
text=el.innerText || el.textContent;


А innerTEXT точно не подходит?

Автор: youri 8.7.2009, 03:32
Цитата

А innerTEXT точно не подходит?

нету такого в ff, тем более innerTEXT

Автор: ksnk 8.7.2009, 10:54
Цитата(youri @  8.7.2009,  03:32 Найти цитируемый пост)
нету такого в ff, тем более innerTEXT 

Угу... Я имел ввиду innerHTML... Он есть везде!

Автор: fidres 12.7.2009, 11:37
кстати.
кто подскажет метод определения не только введённого кода клавиши, но и ascii-символа?
нужно отобразить символ, введённый с клавиатуры, а fromCharCode() возвращает не совсем то, что ожидается...
 smile 
Код
var key=e.keyCode?e.keyCode:e.which?e.which:e.charCode;
buk=String.fromCharCode(key);
alert(key+' = '+buk);

четвёртый день башку ломаю...
смысл: по нажатию клавиши на клавиатуре выводить в какой-то элемент div/span символ (притом учитывая регистр).

Автор: Soah 12.7.2009, 12:19
Код

<script type="text/javascript">
    function foo(e) {
        var key= e.keyCode || e.which;
        var buk = String.fromCharCode(key);
        document.getElementById('txt').innerHTML += buk;
    }
</script>

<input type="text" onkeypress="foo(event)" />
<div id="txt"></div>



fidres, http://forum.vingrad.ru/act-boardrules.html
Цитата

П 10
Запрещается создание сообщения с несколькими вопросами. На каждый вопрос должна создаваться отдельная тема. В случае возникновения таких тем администрация форума оставляет за собой право изменить текст сообщения, удалить его или закрыть тему.

Автор: fidres 12.7.2009, 13:35
да это я задумался о своём...
по сути, меня вопрос о innerText/textContent тоже интересовал...
но с этим я сам разобрался.
но а всё остальное - вроде как в догонку. ;)
Код
function _evn(e){
  e=e||window.event;
  key=e.keyCode?e.keyCode:e.which?e.which:e.charCode;
  buk=String.fromCharCode(key).toLowerCase();
//  но тут встаёт вопрос обработки Ctrl/Alt/Shift и прочих функционалок
  switch (key){
//  думаю, их целесообразней перекрыть вот этой конструкцией
   case 13: alert('Enter'); break;
   default: try{document.all['d3'].innerText+=buk}catch(e){document.getElementById('d3').textContent+=buk}; break;
  }
}

Автор: Soah 12.7.2009, 13:51
Цитата(fidres @  12.7.2009,  13:35 Найти цитируемый пост)
но тут встаёт вопрос обработки Ctrl/Alt/Shift

http://javascript.ru/blog/Andrej-Paranichev/Vvedenie-sobytiya#svoystva-obekta-sobytie
Цитата

shiftKey, ctrlKey, altKey
Служат для определения, нажата ли во время события соответствующая клавиша


fidres, создайте новую тему, и опишите Вашу задачу smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)