Как реализовать в BAS?



  • Суть вопроса в ролике: https://www.youtube.com/watch?v=FMI-yEFCMQE



  • @Slayts у профессиональных разработчиков нет времени смотреть видеоролики, уверяю Вас.



  • @Slayts ищи по форуму, такая тема поднималась



  • @romanbiz said in Как реализовать в BAS?:

    @Slayts у профессиональных разработчиков нет времени смотреть видеоролики, уверяю Вас.

    Да я всё понимаю, просто если я буду пытаться описать словами, то что мне нужно, боюсь получится плохо. А в ролике всё доступно рассказано.
    Но давайте попробуем)

    Нужно чтобы Recaptcha2 грузилась на пустой страничке на нужном мне домене. Т.е. грузился не весь сайт, а только recaptcha на нём. В zennopostere это решается с помощью С# и JS (собственно об этом и ролик), но так как, BAS не поддерживает С#, то нужно решение как реализовать это силами BAS.

    Вот код на С#:

    Tab tab = instance.ActiveTab; 						// Будем работать с активной вкладкой
    instance.UseJavaScripts = false; 					// Отключим выполнение JS на страничке
    tab.SetSourceText(""); 								// Очистим исходный код странички
    string script = @"var recaptcha = document.createElement('script'); recaptcha.setAttribute('src', 'https://www.google.com/recaptcha/api.js'); document.getElementsByTagName('head')[0].appendChild(recaptcha);"; // Здесь создадим наш ява скрипт для выполнения на страничке сайта
    string html = @"<!DOCTYPE html><html><head></head><body><div id='recaptcha-demo' class='g-recaptcha' data-sitekey='6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-' data-callback='onSuccess'></div></body></html>"; // Здесь создадим новый исходный код странички
    tab.SetSourceText(html); 							// Установим созданный выше исходный код на страницу нашего сайта
    instance.UseJavaScripts = true; 					// Включим выполнение ява скриптов в нашем браузере
    tab.MainDocument.EvaluateScript(script); 			// Выполним созданный выше ява скрипт
    


  • @artihorror said in Как реализовать в BAS?:

    @Slayts ищи по форуму, такая тема поднималась

    Спасибо, попробую найти.





  • @Slayts Это просто моё личное мнение и совет. В следующий раз когда выкладываете видео пишите к нему описание на несколько слов, чтобы те кого оно заинтересует переходили. Лично для меня такое отношение это неуважение.



  • @romanbiz said in Как реализовать в BAS?:

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

    Согласен, не очень получилось. Просто не знал как сформулировать, поэтому и тему "неоформленную" в offtopice разместил.



  • @Antonio said in Как реализовать в BAS?:

    @Slayts
    http://community.bablosoft.com/topic/3675/recaptcha-выпадает-за-пределы-экрана/21

    Спасибо, нашёл несколько тем по вашей наводке.

    Ситуация такова:
    Нужно сделать вывод рекапчи на сайте без подгрузки остального содержимого, как на этом скрине https://i.imgur.com/cAIQQQs.png (источник http://community.bablosoft.com/topic/3369/денвер-и-бас)
    Я так понял, что мне нужно вот это (источник http://community.bablosoft.com/topic/2871/установить-адрес-домен-не-загружая-страницу/12)

    <html><body>
    <form method="POST">
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
    <div class="g-recaptcha" data-sitekey="вашключ"></div>
    <input type="submit" name="OK" value="send">
    </form>
    </body></html>
    

    Но залить этот код, не на локальный сайт, а на "целевой" там где капча.

    Вопрос, как с помощью BAS мне очистить полностью, содержимое загруженного сайта и залить туда данный html код?
    Я так понимаю, что надо "Яваскрипт" или "Выполнить код" но я в этом не силён.



  • @Slayts Браузер -> Яваскрипт

    var b=document.getElementsByTagName('body')[0];b.innerHTML='<form method="POST"><div class="g-recaptcha" data-sitekey="вашключ"></div><input type="submit" name="OK" value="send"></form>';var script = document.createElement('script');script.src = 'https://www.google.com/recaptcha/api.js';script.async = false;b.appendChild(script);
    

    ВАШКЛЮЧ из data-sitekey на требуемой странице

    Это лишь реализация вставки твоего кода в пустую страницу на нужном сайте.
    Капча распознаётся и решается.
    Однако, это всё дело нужно допиливать под задачу...



  • @Xstroy Спасибо, то что нужно. Пол дела сделано.
    Допиливать и правда надо, но уже хотя бы есть начало.