01.04.2021, 11:18
|
Аспирант
|
|
Регистрация: 24.06.2015
Сообщений: 96
|
|
Как заставить работать скрипт после загрузки другого?
К сайту подключаю скрипт бронирования, через: <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'
});
});
});
как я понимаю из-за того, что мой скрипт "не видит" объекта.
Как решить эту проблему?
|
|
01.04.2021, 11:36
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Quark_, строка 3
jQuery('body').on('click', '#lresponse', function() {
|
|
01.04.2021, 11:51
|
Аспирант
|
|
Регистрация: 24.06.2015
Сообщений: 96
|
|
Сообщение от рони
|
Quark_, строка 3
jQuery('body').on('click', '#lresponse', function() {
|
Не помогло...
Не знаю как на форуме запустить демку, в jsfiddle сделал https://jsfiddle.net/FacepalmZone/n29et38f/1/
|
|
01.04.2021, 12:01
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от Quark_
|
как на форуме запустить демку,
|
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|
01.04.2021, 12:10
|
Аспирант
|
|
Регистрация: 24.06.2015
Сообщений: 96
|
|
<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
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Quark_,
как вариант ...
jQuery(window).on('load', function() {
window.setTimeout(function() {
jQuery('#rsnlresponse iframe').css({
'height': 'auto'
});
}, 300)
});
|
|
01.04.2021, 12:16
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Quark_,
нет у вас jQuery ни здесь ни в другой песочнице
|
|
01.04.2021, 12:17
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
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
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от Quark_
|
Как решить эту проблему?
|
вероятно никак, высота фрейма рассчитывается автоматически(скриптом) при любом изменении, клики не работают, да и бесполезны, скрипт восстанавливает необходимую ему высоту, и это атрибут а не стиль. можно
jQuery('#rsnlresponse iframe').attr({
'height': 'auto'
});
но это бесполезно. возможно есть решение, но мне он неизвестно.
Последний раз редактировалось рони, 01.04.2021 в 12:32.
|
|
01.04.2021, 12:43
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,745
|
|
Я не понял, что там делает конкретный скрипт с этим конкретным iframe.
Click по фрейму прямым способом действительно не отловить.
Но можно косвенно.
https://gist.github.com/jaydson/1780598
Идея в том, что мы ловим mouseover на блоке под фреймом.
И если при этом происходит клик по фрейму, то наше окно теряет фокус в этот момент
|
|
|
|