TLDR: Так что, что вам нужно сделать, это то, что когда контент изменяется внутри iFrame, вам нужно отправить сигнал за пределы iFrame, и у вас должен быть слушатель снаружи на странице и соответственно изменить высоту.
Всякий раз, когда компонент отображается или что-либо обновляется, я использую iFrame postMessage
и окно eventListener
, я обмениваюсь информацией между iFrame и главной страницей, используя их, так что теперь вы на правильном пути, все, что вам нужно сделать, это внутри iFrame передать значение,
const payload = 'updateHeight'
targetWindow.postMessage(message, targetOrigin, payload)
и на главном экране добавьте eventListener
window.eventListener('message', (event)=> {
if(event.data === 'updateHeight') {
// change the height here by calling `changeIframeSize()`
}
})
Вот документация для postMessage
Дополнительная информация: Если в будущем вам нужен обратный вызов или вы хотите передать функцию вне или внутри iFrame, вы можете перейти на post-robot , Это мне очень помогло .