Я пытаюсь встроить виджеты сообщений канала Telegram в боковую панель веб-страницы с меньшей шириной, чем iframe, созданный сценарием для встраивания. Скрипт использует postMessage API и обрабатывает событие message
для установки высоты и ширины виджета, см. Функцию «postMessageHandler» здесь . Он передает высоту даже в postMessage, а также прослушивает подобное даже с родительской страницы, чтобы получить высоту и ширину iframe. Я хочу передать высоту и ширину фрейму.
Я пробовал обработчики $( document ).ready()
и $(window).on('load',...)
пропустить сообщение, но оно не работает.
$('iframe').on('load',function(){
$(this).get(0).contentWindow.postMessage(
{
event:'resize',
height:600,
width:400
},
'https://t.me'
);
});
Я могу прослушивать события iframe и видеть переданные данные, используя это:
$(window).on('message', function(evt){
console.log(evt);
});
Сценарий для встраивания подобен этому, как указано в документации .
<script async src="https://telegram.org/js/telegram-widget.js?4" data-telegram-post="telegram/83" data-width="100%"></script>