Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.06.2012, 01:17
Профессор
Отправить личное сообщение для lamer Посмотреть профиль Найти все сообщения от lamer
 
Регистрация: 08.02.2012
Сообщений: 216

Копировать div в input - Проблемма в FF
Здравствуйте.
Впервые с таким сталкиваюсь, в FF не работает код а в IE работает, хотя обычно наоборот =)
Подскажите в чем моя ошибка ?

<html>

<head>
</head>

<body>
<div id="clonDiv">To the Game: Sapranno,<abbr title="TitleGame">WOW</abbr># 00235568</div>

<form id="form">
<input type="button" value="CloneDiv" onclick="clone();">
<br>
</form>

<script>
function clone() {
var input = document.createElement('input');
input.type = 'text';
input.value = '';
input.id = 'cln';
input.name = 'cln';
document.getElementById('form').appendChild(input);
document.getElementById('cln').value = document.getElementById('clonDiv').innerText;
}
</script>
</body>

</html>
Ответить с цитированием
  #2 (permalink)  
Старый 11.06.2012, 01:49
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

у FF нет свойства .innerText; используйте для него textContent
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 11.06.2012, 02:26
Профессор
Отправить личное сообщение для lamer Посмотреть профиль Найти все сообщения от lamer
 
Регистрация: 08.02.2012
Сообщений: 216

Сообщение от devote Посмотреть сообщение
у FF нет свойства .innerText; используйте для него textContent
textContent - Не работает в IE
Хотелось бы найти кроссбраузерный вариант, хотябы чтоб работал в FF/IE

А innerHTML мне к сожалению не подходит

Может кто-то знает альтернативу ?
Ответить с цитированием
  #4 (permalink)  
Старый 11.06.2012, 02:37
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от lamer
textContent
if('\v'=='v'){document.getElementById('cln').value = document.getElementById('clonDiv').innerText;
 } else {document.getElementById('cln').value = document.getElementById('clonDiv').textContent;}
Ответить с цитированием
  #5 (permalink)  
Старый 11.06.2012, 03:07
Профессор
Отправить личное сообщение для lamer Посмотреть профиль Найти все сообщения от lamer
 
Регистрация: 08.02.2012
Сообщений: 216

Сообщение от Deff Посмотреть сообщение
if('\v'=='v'){document.getElementById('cln').value = document.getElementById('clonDiv').innerText;
 } else {document.getElementById('cln').value = document.getElementById('clonDiv').textContent;}
Вариант, спасибо.
Ответить с цитированием
  #6 (permalink)  
Старый 11.06.2012, 03:09
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от lamer
Может кто-то знает альтернативу ?
нет альтернатив, по стандарту нужно использовать именно textContent но ИЕ не понимает новых стандартов, точнее старые версии ИЕ. Поэтому для них нужно делать проверку в коде:
<html>
 
<head>
</head>
 
<body>
<div id="clonDiv">To the Game: Sapranno,<abbr title="TitleGame">WOW</abbr># 00235568</div>
 
<form id="form">
<input type="button" value="CloneDiv" onclick="clone();">
<br>
</form>
 
<script>
function clone() {
    var input = document.createElement('input'),
        cloneDiv = document.getElementById('clonDiv');

    input.type = 'text';
    input.value = '';
    input.id = 'cln';
    input.name = 'cln';
    document.getElementById('form').appendChild(input);
    document.getElementById('cln').value = cloneDiv.textContent || cloneDiv.innerText || "";
}
</script>
</body>
 
</html>
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #7 (permalink)  
Старый 12.06.2012, 20:19
Профессор
Отправить личное сообщение для lamer Посмотреть профиль Найти все сообщения от lamer
 
Регистрация: 08.02.2012
Сообщений: 216

devote прикольно

document.getElementById('cln').value = cloneDiv.textContent || cloneDiv.innerText || "";


Это получается FF и IE возьмет тот метод который он понимает ?
А для чего кавычки в конце ?
Ответить с цитированием
  #8 (permalink)  
Старый 12.06.2012, 20:44
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от lamer
Это получается FF и IE возьмет тот метод который он понимает ?
ага..
Сообщение от lamer
А для чего кавычки в конце ?
Для того случая, если у ФФ textContent будет пустым, он попытается взять значение из innerHTML и если кавычки не поставить, тогда в поле появится значение undefined. Для этого в конце нужны кавычки, что бы он в случае пустого значения все же пустое и поставил.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #9 (permalink)  
Старый 12.06.2012, 23:30
Профессор
Отправить личное сообщение для lamer Посмотреть профиль Найти все сообщения от lamer
 
Регистрация: 08.02.2012
Сообщений: 216

devote понял, спасибо. Очень интересный вариант.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копировать значение input с одной странице на другую lamer Элементы интерфейса 0 06.03.2012 04:03
проблема с div И animate g00000dman jQuery 2 24.03.2011 23:34
ширина Input внутри div jetli13 (X)HTML/CSS 3 28.09.2010 19:01
Копирование из одного input в другой input bar-boss Общие вопросы Javascript 7 08.04.2008 19:10
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55