Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вытащить textarea из div - JavaScript (https://javascript.ru/forum/dom-window/71046-vytashhit-textarea-iz-div-javascript.html)

graph91 22.10.2017 07:53

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


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

Заранее спасибо!

Nexus 22.10.2017 09:43

Вложений: 1
graph91, попробуйте так:

graph91 22.10.2017 19:02

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';

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

Какие еще есть варианты?

graph91 22.10.2017 19:42

Цитата:

Сообщение от Nexus (Сообщение 467933)
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";

Все нормально работает, но текст не добавляется...

graph91 23.10.2017 04:39

Цитата:

Сообщение от Nexus (Сообщение 467933)
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?

Nexus 23.10.2017 10:23

graph91, если новая вкладка/окно открывает страницу другого домена, то модифицировать его DOM не получится.

graph91 23.10.2017 11:54

Цитата:

Сообщение от Nexus (Сообщение 467966)
graph91, если новая вкладка/окно открывает страницу другого домена, то модифицировать его DOM не получится.

Сайт один и тотже, значит и домен один и тотже, верно?

Nexus 23.10.2017 12:17

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

Т.е. так:
d.addEventListener('load', function(){

graph91 23.10.2017 14:57

Вложений: 1
Цитата:

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

Т.е. так:
d.addEventListener('load', function(){

Вы лучший! Это помогло,текст добавляется, большое спасибо!
Может быть тогда Вы подскажете, как имитировать нажатие мышки на кнопу, а именно активировать Button.
Картинку со структурой "отправить" приложил.
Буду очень Вам благодарен.

Nexus 23.10.2017 15:07

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


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