Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Модификация reCAPTCHA (https://javascript.ru/forum/events/74393-modifikaciya-recaptcha.html)

Dm Stark 06.07.2018 17:09

Модификация reCAPTCHA
 
Задача состоит в том, чтобы скрыть все элементы сайта кроме popup с reCAPCTHA. При этом нужно, чтобы капча отображалась в левом верхнем углу страницы и не закрывалась пока задание не будет решено правильно.

1. Скрыть элементы и удалить фон труда не составило.
2. Для отображения popup с заданием нужно эмулировать нажатие на checkbox внутри iframe, в котором находится капча (имеет вид:
<iframe src="https://www.google.com/recaptcha/api2/anchor?...
). Однако, как это сделать - вопрос, т.к. такой скрипт даёт ошибку:
$0.contentDocument
- "Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "https://domain.com" from accessing a cross-origin frame".
3. Нужно модифицировать стиль самого popup с заданием, чтобы не закрывался ни через определённое время ни при щелчке по странице.

Nexus 06.07.2018 17:16

У нее API есть.
https://developers.google.com/recaptcha/docs/display

ps. поведением окна с заданием управлять не получится, однако убрать overlay только после решения капчи труда не составит.

Dm Stark 06.07.2018 23:48

Знаете. На самом деле общей задачей является пройти авторизацию на сайте программно. Заполнить поля и нажать кнопочку не сложно. Но вот пройти капчу составило проблему. Вернее, отобразить её пользователю. Я использую WPF CefSharp в качестве встроенного браузера. По моей идее, при нажатии на кнопку "Решить капчу" будет отображаться popup с CefSharp.ChromiumWebBrowser внутри (а там задание reCAPTCHA). Возможно это сделать?

По идее, я вижу вот такой iframe, который находится в скрытом div; отображается когда нужно показать задания капчи:
<iframe title="проверка recaptcha" src="https://www.google.com/recaptcha/api2/bframe?hl=ru&amp;v=v1529908317173&amp;k=6LdgXEgUAAAAAKdv4u...


Так вот, почему бы не скрыть все элементы кроме этого, а потом отобразить этот iframe.

Т.е. у меня 2 iframe на странице. В разных родительских элементах. В одном качпа (с checkbox которая), а в другом задания.


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