как изменить размеры iframe через внешний js

447
06 июня 2017, 01:52

Сделал свой виджет для сайтов. Но мне нужно чтобы при нажатии на него, он раскрывался полностью по высоте, как это к примеру сделано у виджетов онлайн косультантов. Что сейчас пробую: подключаю внешний скрипт с кодом где создаю iframe(iframe.src опустил):

iframe = document.createElement('iframe');
iframe.id = 'widget_stolik';
window.addEventListener("message", function(event) {
    if(event.data == 'changeSize') {
        setTimeout(function() {
        var height = window.innerHeight;
        var iframe = document.getElementById('widget_stolik');
        var scrollHeight = Math.max(
          iframe.contentWindow.document.body.scrollHeight,
          iframe.contentWindow.document.body.offsetHeight,
          iframe.contentWindow.document.body.clientHeight
        );
        if(height < scrollHeight) {
            iframe.style.height = height + 'px';
        }
        else {
            iframe.style.height = scrollHeight + 'px';
        }
    },100);
    }
});

И вызывая из скрипта в iframe:

parent.postMessage("changeSize", "*");

Получаю ошибку:

Uncaught DOMException: Blocked a frame with origin "http://site.ru" from accessing a cross-origin frame.

При попытке изменить размер iframe блока( как тогда делают разработчики виджетов? Может кто знает ответ?

Answer 1

Решил проблему меня не высоту самого iframe, а высоту внешнего блока. Как я понял браузер блокирует iframe.contentWindow ... т.е получить какие то параметры iframe нельзя, пришлось задавать цифры вручную. + Высоту iframe тоже нельзя изменить, но можно изменить высоту родительского блока. А iframe сделать height: 100%

READ ALSO
Модульный фронтенд для SPA [требует правки]

Модульный фронтенд для SPA [требует правки]

Добрый деньПодскажите в сторону какого фраемворка или стэка технологий стоит смотреть

271
Как отпавить дополнительные параметры dropezone.js?

Как отпавить дополнительные параметры dropezone.js?

Вот станица самого плагина проблема в том что запросом отправляется только картинка, а появилась необходимость отправлять дополнительные...

233
Динамическое добавление скрипта в iframe

Динамическое добавление скрипта в iframe

Есть iframe, генерирующийся динамическиЧто в нём - я не знаю, но доступ к нему через contentWindow есть

359