Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как вставить текст в поле из другого окна? (https://javascript.ru/forum/events/49931-kak-vstavit-tekst-v-pole-iz-drugogo-okna.html)

useruser 04.09.2014 08:15

Как вставить текст в поле из другого окна?
 
Есть такой код. По нажатию на div в textarea вставляется :super:.
Код:

<textarea cols="85" rows="20" wrap="VIRTUAL" name="post_message" id="post_message"></textarea>
<div  onclick="document.getElementById(\'post_message\').value =document.getElementById(\'post_message\').value+\':super:\';">

Как можно осуществить подобное из другого окна (другой страницы)?
Все страницы находятся на одном домене, в одной папке.

Aetae 04.09.2014 09:26

localStorage.

Пример: Страница 1.
<script>
window.addEventListener('storage', function(event){
  console.log(event);
  document.body.insertAdjacentHTML('afterbegin', 
    '<div>На странице "' + event.url + 
    '" в '  + event.storageArea + 
    ' ключу "' + event.key + 
    '" установлено значение "' + event.newValue + 
    '".</div>'
  );
  localStorage.removeItem(event.key); //не засоряем ls примеров
}, false);
</script>
Пример: Страница 2.
<input type="text" value="some value"> 
<input type="button" onclick="
  localStorage.setItem('ls example ' + Math.random(), previousElementSibling.value);
" value="write">

useruser 06.09.2014 15:37

Спасибо, а как теперь вставить всё это в textarea?
Т.е. я хочу заменить
document.body

на textarea.
<textarea cols="85" rows="20" name="post_message" id="post_message">

Aetae 06.09.2014 15:44

useruser, а как вы это делаете обычно?

useruser 06.09.2014 18:56

Как то так
document.getElementById(\'post_message\').value

Aetae 06.09.2014 19:17

useruser, и что вам мешает поступать тут также?

useruser 07.09.2014 08:48

Цитата:

Сообщение от Aetae (Сообщение 329253)
useruser, и что вам мешает поступать тут также?

Код не работает
document.getElementById('post_message').value.insertAdjacentHTML

Aetae 07.09.2014 08:53

useruser, может вам рано писать такой код? Почитайте основы javascript, или хотябы загуглите что такое .value, а что такое .insertAdjacentHTML .
Это просто не серьёзно.

useruser 08.09.2014 12:10

Загуглил, изменил код
<script>
window.addEventListener('storage', function(event){
  console.log(event);
  document.getElementById ('post_message').insertAdjacentHTML('beforeend', 
  event.newValue
  );
  localStorage.removeItem(event.key); //не засоряем ls примеров
}, false);
</script>

В результате вставляет значение в post_message только если там ничего нет. Если там что-то есть - не вставляет.

Aetae 08.09.2014 13:09

Ну ёксель-моксель.:(
document.getElementById('post_message').value += event.newValue


Часовой пояс GMT +3, время: 12:14.