Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Как заставить работать скрипт после загрузки другого? (https://javascript.ru/forum/css-html/82209-kak-zastavit-rabotat-skript-posle-zagruzki-drugogo.html)

Quark_ 01.04.2021 11:18

Как заставить работать скрипт после загрузки другого?
 
К сайту подключаю скрипт бронирования, через: <script src="https://сторонний сайт/"></script>
Он после загрузки страницы добавляет блок <div id="lresponse">, в котором находится iframe.

Необходимо, чтобы по клику на любую область <div id="lresponse"> - у iframe менялся css, но такие варианты не срабатывают

jQuery(window).load(function() {
//jQuery(document).ready(function(){
jQuery('#lresponse').click(function() {
    jQuery('#lresponse iframe').css({
        'height': 'auto'
    });
});
});


как я понимаю из-за того, что мой скрипт "не видит" объекта.
Как решить эту проблему? :blink:

рони 01.04.2021 11:36

Quark_, строка 3
jQuery('body').on('click', '#lresponse', function() {

Quark_ 01.04.2021 11:51

Цитата:

Сообщение от рони (Сообщение 535109)
Quark_, строка 3
jQuery('body').on('click', '#lresponse', function() {


Не помогло...
Не знаю как на форуме запустить демку, в jsfiddle сделал https://jsfiddle.net/FacepalmZone/n29et38f/1/

рони 01.04.2021 12:01

Цитата:

Сообщение от Quark_
как на форуме запустить демку,

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Quark_ 01.04.2021 12:10

<div class="block">
<script src="https://pms.connectone.ru/module/?hid=eb225c"></script>
</div>

<style>
html {
  height: 500px;
}
.block {
  background: #000;
padding: 10px;
}
#rsnlresponse iframe {
  height: 150px;
}
</style>

<script>
jQuery(window).load(function() {
jQuery('body').on('click', '#rsnlresponse', function() {
    jQuery('#rsnlresponse iframe').css({
        'height': 'auto'
    });
});
});
</script>

рони 01.04.2021 12:15

Quark_,
как вариант ...
jQuery(window).on('load', function() {
window.setTimeout(function() {
 jQuery('#rsnlresponse iframe').css({
        'height': 'auto'
    });
}, 300)
});

рони 01.04.2021 12:16

Quark_,
нет у вас jQuery ни здесь ни в другой песочнице

рони 01.04.2021 12:17

Quark_,
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    </style>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
jQuery(window).on('load', function() {
window.setTimeout(function() {
 jQuery('#rsnlresponse iframe').css({
        'height': 'auto'
    });
}, 300)
});
    </script>
</head>
<body>
<div class="block">
<script src="https://pms.connectone.ru/module/?hid=eb225c"></script>
</div>
</body>
</html>

рони 01.04.2021 12:29

Цитата:

Сообщение от Quark_
Как решить эту проблему?

вероятно никак, высота фрейма рассчитывается автоматически(скриптом) при любом изменении, клики не работают, да и бесполезны, скрипт восстанавливает необходимую ему высоту, и это атрибут а не стиль. можно
jQuery('#rsnlresponse iframe').attr({
        'height': 'auto'
    });
но это бесполезно. возможно есть решение, но мне он неизвестно.

voraa 01.04.2021 12:43

Я не понял, что там делает конкретный скрипт с этим конкретным iframe.
Click по фрейму прямым способом действительно не отловить.
Но можно косвенно.
https://gist.github.com/jaydson/1780598
Идея в том, что мы ловим mouseover на блоке под фреймом.
И если при этом происходит клик по фрейму, то наше окно теряет фокус в этот момент


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