Javascript.RU

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

Сделал скрипт, не работает полностью через tampermonkey
Значит, сделал я юзерскрипт, проблема вот в чём: если вставлять скрипт через консоль, то он работает нормально, а если через Tampermonkey, то он вроде как работает, но когда выбираю какой-нибудь пункт из выпадающего списка, ничего не происходит. А должен добавляться текст в textarea. Если вставлять через консоль, то работает. Вот скрипт:
var replyarea = document.getElementsByClassName("forumtopic_reply_textarea");
var replyareael = replyarea[0];

function addtext(text) {
    replyareael.value += text;
}

var textareaforum = document.getElementsByClassName("commentthread_entry_autosubscribe");
var textareaforumel = textareaforum[0];

textareaforumel.innerHTML += "<select onchange='addtext(this.options[this.selectedIndex].value)'><option value=''></option><option value='1'>Аккаунт</option><option value='2' selected>Ключ</option></select>";


UPD: Я узнал ошибку, ругается на то, что не обозначена функция addtext. Я убрал функцию, начало ругаться на то, что не обозначена переменная... Что за бред?

Последний раз редактировалось Wolterhon, 12.08.2018 в 19:32.
Ответить с цитированием
  #2 (permalink)  
Старый 13.08.2018, 00:43
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

скорее всего сайт подгружает часть контента аяксом

самый простой костыль, обернуть в
setTimeout(function(){
//ваш код
},2000);
Ответить с цитированием
  #3 (permalink)  
Старый 13.08.2018, 08:42
Новичок на форуме
Отправить личное сообщение для Wolterhon Посмотреть профиль Найти все сообщения от Wolterhon
 
Регистрация: 12.08.2018
Сообщений: 3

Сделал, всё равно втирает, что функция не обозначена.
Ответить с цитированием
  #4 (permalink)  
Старый 13.08.2018, 10:21
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

textareaforumel.innerHTML +=
Так делать нельзя ни в коенм случае(и в обычном коде тоже). a+=b это на самом деле a=a+b, т.е. таким образом в переписываете весь предыдущий код заново, сбрасывая на ноль любые обработчики в нём присутствующие.
Но проблема не в этом.)
Код в юзер скриптах находится на отдельном "уровне" и обычно(есть варианты) напрямую к ним из страницы обращаться нельзя.
Делать надо примерно так:
var replyarea = document.getElementsByClassName("forumtopic_reply_textarea");
var replyareael = replyarea[0];

function addtext(text) {
    replyareael.value += text;
}

var textareaforum = document.getElementsByClassName("commentthread_entry_autosubscribe");
var textareaforumel = textareaforum[0];

var select = document.createElement('select');
select.onchange = function(){
  addtext(this.options[this.selectedIndex].value);
};
var option = select.appendChild(document.createElement('option'));
option.value = '';

option = select.appendChild(document.createElement('option'));
option.value = '1';
option.innerHTML = 'Аккаунт';

option = select.appendChild(document.createElement('option'));
option.value = '2';
option.innerHTML = 'Ключ';

textareaforumel.appendChild(select);
Т.е сохраняя все связи внутри скрипта,а не преобразуя в текст и добавляя на страницу.
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 13.08.2018, 11:03
Новичок на форуме
Отправить личное сообщение для Wolterhon Посмотреть профиль Найти все сообщения от Wolterhon
 
Регистрация: 12.08.2018
Сообщений: 3

Огромное спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с скриптом через софт tampermonkey isinys018 Общие вопросы Javascript 1 15.07.2018 08:37
Как показать страницу, пока скрипт работает? sitar32 Элементы интерфейса 13 28.08.2014 11:18
Jquery Ajax не работает через определенных провайдеров Fairy-Wilbury AJAX и COMET 0 10.07.2014 16:33
??? Скрипт не работает в IE, FF и Opera, но работает в Chrome и Safari psiworm jQuery 1 28.01.2013 10:05
Почему не работает скрипт, подскажите aviaks Ваши сайты и скрипты 2 05.05.2009 14:38