Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.10.2017, 07:53
Новичок на форуме
Отправить личное сообщение для graph91 Посмотреть профиль Найти все сообщения от graph91
 
Регистрация: 22.10.2017
Сообщений: 7

Вытащить textarea из div - JavaScript
Добрый день, уважаемые форумчане!
Имею структуру, которая указана на картинке.
Вопрос, как мне из кода javascript обратиться к этой textarea и вставить в нее нужную строку.


Пробовал делать так:
window.open("htttp://")
var m =document.getElementsByTagName('textarea')
Но m не определяется.

Заранее спасибо!
Изображения:
Тип файла: jpg Безымянный.jpg (22.6 Кб, 4 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 22.10.2017, 09:43
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,741

graph91, попробуйте так:
Изображения:
Тип файла: jpg 2017-10-22_093756.jpg (19.9 Кб, 9 просмотров)
Ответить с цитированием
  #3 (permalink)  
Старый 22.10.2017, 19:02
Новичок на форуме
Отправить личное сообщение для graph91 Посмотреть профиль Найти все сообщения от graph91
 
Регистрация: 22.10.2017
Сообщений: 7

Nexus, большое спасибо, что проявили интерес.
При Вашем синтаксисе ошибка, подчеркивается весь путь querySelector.

Я попробовал написать так:
d.document.querySelector('#app > div.main-content > div > div.layout-middle > div > div.dialogs-write > div.sw-input > div > textarea').value+='Your string';

Так ошибки нет, но текст по-прежнему не вставляется...

Какие еще есть варианты?
Ответить с цитированием
  #4 (permalink)  
Старый 22.10.2017, 19:42
Новичок на форуме
Отправить личное сообщение для graph91 Посмотреть профиль Найти все сообщения от graph91
 
Регистрация: 22.10.2017
Сообщений: 7

Сообщение от Nexus Посмотреть сообщение
graph91, попробуйте так:
function sendMessage(_0x15b6x8) {
var d =window.open( _0x15b6x8)
m = d.document.querySelector('#app > div.main-content > div > div.layout-middle > div > div.dialogs-write > div.sw-input > div > textarea');
m.value = "123";

Все нормально работает, но текст не добавляется...
Ответить с цитированием
  #5 (permalink)  
Старый 23.10.2017, 04:39
Новичок на форуме
Отправить личное сообщение для graph91 Посмотреть профиль Найти все сообщения от graph91
 
Регистрация: 22.10.2017
Сообщений: 7

Сообщение от Nexus Посмотреть сообщение
graph91, попробуйте так:
В общем смотрите, я делаю так:
функция
function sendMessage(_0x15b6x8) {
               var d =window.open( _0x15b6x8)
                    d.document.addEventListener('DOMContentLoaded', function(){
                           d.document.querySelector('#app > div.main-content > div > div.layout-middle > div > div.dialogs-write > div.sw-input > div > textarea').value+='Your string';
                     },false);
                     if(d.document.readyState=='complete'){
                        d.document.dispatchEvent(new Event('DOMContentLoaded'))}
}

перебирается в цикле.
Может ли быть такое, что на момент проверки d.document.readyState=='complete' возвращается false из-за того, что страница просто не загрузилась?
Как дождаться d.document.readyState=='complete' и затем уже выполнять IF?
Ответить с цитированием
  #6 (permalink)  
Старый 23.10.2017, 10:23
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,741

graph91, если новая вкладка/окно открывает страницу другого домена, то модифицировать его DOM не получится.
Ответить с цитированием
  #7 (permalink)  
Старый 23.10.2017, 11:54
Новичок на форуме
Отправить личное сообщение для graph91 Посмотреть профиль Найти все сообщения от graph91
 
Регистрация: 22.10.2017
Сообщений: 7

Сообщение от Nexus Посмотреть сообщение
graph91, если новая вкладка/окно открывает страницу другого домена, то модифицировать его DOM не получится.
Сайт один и тотже, значит и домен один и тотже, верно?
Ответить с цитированием
  #8 (permalink)  
Старый 23.10.2017, 12:17
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,741

graph91, попробуйте заменить событие "DOMContentLoaded" на "load".
"load" нужно вешать на window, не на document.

Т.е. так:
d.addEventListener('load', function(){
Ответить с цитированием
  #9 (permalink)  
Старый 23.10.2017, 14:57
Новичок на форуме
Отправить личное сообщение для graph91 Посмотреть профиль Найти все сообщения от graph91
 
Регистрация: 22.10.2017
Сообщений: 7

Сообщение от Nexus Посмотреть сообщение
graph91, попробуйте заменить событие "DOMContentLoaded" на "load".
"load" нужно вешать на window, не на document.

Т.е. так:
d.addEventListener('load', function(){
Вы лучший! Это помогло,текст добавляется, большое спасибо!
Может быть тогда Вы подскажете, как имитировать нажатие мышки на кнопу, а именно активировать Button.
Картинку со структурой "отправить" приложил.
Буду очень Вам благодарен.
Изображения:
Тип файла: jpg Безымянный1.jpg (23.7 Кб, 1 просмотров)
Ответить с цитированием
  #10 (permalink)  
Старый 23.10.2017, 15:07
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,741

graph91, Прочитайте эту статью, она поможет разобраться.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бесплатный курс JavaScript (18 уроков)  Bokal Учебные материалы 2 16.11.2014 20:20
Как изменить css одного div при наведении на другой с javascript? InkyThousand Общие вопросы Javascript 7 11.11.2014 16:35
Работа JavaScript в определенном DIV inet_boy Элементы интерфейса 9 13.08.2013 00:55
Javascript добавление div элемента 203 Элементы интерфейса 1 21.04.2013 16:04
JavaScript + div = ? obsessioner Оффтопик 9 09.04.2010 13:58