Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Как выполнить фрагмент кода в конкретном контексте (https://javascript.ru/forum/css-html/79047-kak-vypolnit-fragment-koda-v-konkretnom-kontekste.html)

Andreyy277 10.12.2019 17:45

Как выполнить фрагмент кода в конкретном контексте
 
Как выплнить код в конкретном контексте. Вот есть сайт, я на нем с помощью гугл хроома нажимаю кнопки, и все хорошо работает, но когда я хочу заполнить один input, то элемент банально не находится.

Но если поменять js контекст то элемент находится.

Так вот вопрос, как сделать полноценный скрипт, который будет выполнять все нужные задачи на странице? Как при глобальном контексте найти этот input?

Aetae 10.12.2019 18:51

"Контекст" - это просто (i)frame на странице. Если (i)frame того же домена - то можно работать из родителя(получить элемент <(i)frame>, получить у него contentWindow). Если (i)frame чужой - то только используя всякую особую магию расширений.

Andreyy277 10.12.2019 22:49

Этот фрейм (cvv) дочерний, как к нему обратиться из top?

рони 10.12.2019 23:21

Andreyy277,
document.querySelector('iframe').contentWindow.document.get...

Andreyy277 10.12.2019 23:39


видимо я ошибся, у cvv немного другой домен. Хотя вроде он под top, как обратиться к нему в таком случае? Если выбрать контекст cvv то я спокойно нахожу нужное поле, но в top не получается. Может как-то можно к нему обратиться?

Andreyy277 11.12.2019 00:53

var a = document.getElementsByClassName('cvv');
a[0].contentWindow.document.getElementsByName('cardCvc');

Думал получилось, но все-таки они на разных доменах:(

Хотя, казалось бы, это просто input на странице.Что делать в таком случае?

Andreyy277 11.12.2019 00:55

мне нужно только 3 цифры вписать в этот input...

Aetae 11.12.2019 01:37

Страдать, что ещё.

Откуда ваш код берётся на этой странице?
Если запускаете из консоли - без вариантов.(теоретически там может быть какое-то внутреннее апи для межфреймового общения, но реверсить его, даже если оно есть - вне ваших навыков)
Если пишете юзерскрипт - делаете по скрипту для каждого домена(или один на оба, с условием) и вручную налаживаете общение меж ними(например через postMessage).
Если пишете отдельное расширение - там есть возможность работать с чужими доменами из привилегированного кода.

P.S. А лучше займитесь чем-нить не столь подозрительным.

Andreyy277 11.12.2019 02:28

Можете какую-то литературу посоветовать для запуска скриптов для определенного домена, ну и как им взаимодействовать ?

AndriidZIUBA 11.01.2020 04:19

Помогите чайнику
 
:help: :help: :help: Есть задача, для первоклашек, но я чайник полный. Согласно правилам задачи, в кинотеатре доступ на фильм ограничен с 13 лет и выше, проход для детей младше 13 лет только в сопровождении родителей. нам дано:


let age = 12;
let accompanied = true;
???

Завершить задачу, используя переменные age и accompanied, чтобы узнать, разрешен ли проход в кино для даного 12летнего ребенка? А также изменив параметры возраста на 13 и отсутствие сопровождения:

let age = 13;
let accompanied = false;
???


Спасибо заранее за помощь, буду благодарен. Не ругайте строго чайника. Знаю, что задача ну совсем элементарная, но вынужден просить о помощи.


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