prevo
@prevo

Как реализовать вывод результата расчета из фрейма?

Возможно ли реализовать? Есть калькулятор во фрейме. Как-то нужно перехватить результат, уменьшить на 10% и вывести.
Сам скрипт
<div id="wdj_osago"></div><script type="text/javascript">wdj_osago_email="email@domain.com"; wdj_osago_show_tel=1; wdj_osago_color="primary"; wdj_osago_multi_type=0; wdj_osago_region="1"; wdj_osago_city="335"; wdj_osago_dk="0"; wdj_osago_of="0";  wdj_osago_dk_price=""; wdj_osago_of_price=""; </script> <script src="https://kaskometr.ru/widgets/osago/widget.js" type="text/javascript"></script><script type="text/javascript">wdj_osago.init();</script>
  • Вопрос задан
  • 114 просмотров
Решения вопроса 1
@forkhammer
Fullstack-разработчик (Django, Angular)
Скрипт загружает файл https://kaskometr.ru/widgets/osago/widget.js. Вы можете скачать его и модифицировать. Потом будете подключать не как
<script src="https://kaskometr.ru/widgets/osago/widget.js" type="text/javascript"></script>

а как
<script src="https:// ваш_домен/ путь_до_модифицированного_скирпта/widget.js" type="text/javascript"></script>


В этом скрипте есть такой код
xhr.onload = function() { 
                    // если существует ответ 
                    if (this.response) { 
                        // добавляем полученный ответ в HTML элемент 
                        document.getElementById(id).innerHTML = this.response; 
                    } 
}

Он загружает HTML код фрейма и добавляет его к элементу на вашей странице. Вот здесь можно модифицировать этот HTML код фрейма, который содержиться в this.response и добавить туда тег script, в котором будет содержаться ваш код для модификации чего угодно в калькуляторе во фрейме.
Надеюсь идея такого финта понятна
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@rPman
Если вы говорите про немодифицированные браузеры без плагинов то доступ к данным iframe возможен только в пределах того же домена (отдельный вопрос про поддомены, скорее всего можно) с единым типом подключения (http/https). Если это так то простой скрипт
window.frames['myIFrame'].document.getElementById('myIFrameElemId')
позволит анализировать элементы во фрейме (например по таймеру) и даже взаимодействовать с ними (например симулировать клики и заполнять поля значениями).

Иначе это запрещено политиками браузеров (иначе это был бы ад с вопросами безопасности, ведь можно было бы открыть ваш вконтактик/банковский сайт во фрейме и делать там что хочешь).

Из браузерного расширения/плагина (советую плагины уровня greasemonkey) или используя свой браузер (на базе браузерных контролов или вебкит движков, это просто, обычно код браузера без поддержки загрузки и интерфейса занимает десяток строк вы можете получать доступ к любым iframe) все это можно делать без ограничений.

p.s. а подключить скрипт не во фрейме а на своей странице не получится?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы