获得超过ssl的iframe内容高度

时间:2018-10-09 07:16:26

标签: javascript jquery html asp.net iframe

我有一个小问题。

我有两个站点,都是通过ssl进行的,但是在其他域上。

现在,我正在使用来自第二个站点的表单在第一个站点上加载iframe。

但是,问题是,我将iframe的height属性设置为0,并尝试读取iframe中内容的高度,并为iframe设置了相同的高度。

这是js代码:

var APPObj = {
    $holder: '',
    $key: '',
    render: function () {
        this.$holder.html(this.$frame.load(function () {
            var $bdh = $(this).contents().find('#form1').height();
            APPObj.$frame.height($bdh);
        }));
    }
};

~(() => {
    if (!window.jQuery) {
        var script = document.createElement('script');
        script.onload = () => proceed();
        script.src = "https://my.site/assets/lib/jquery/jquery.js";

        document.head.appendChild(script);
    } else {
        proceed();
    }
})();

function proceed() {
    APPObj.$holder = $('#sozbod-zgloszenie').removeAttr('id');
    APPObj.$key = APPObj.$holder.attr('data-companykey');
    APPObj.$holder.removeAttr('data-companykey');
    APPObj.$frame = $('<iframe src="https://my.site/form.aspx?token=' + 
    APPObj.$key + '" width="100%" height="0" frameborder=""></iframe>');

    APPObj.render();
}

出现错误

var $bdh = $(this).contents().find('#form1').height();

错误:

DOMException: Blocked a frame with origin "https://example.net" from accessing a cross-origin frame.

还有其他方法可以获取iframe中内容的高度吗?

我这样做是因为我不想在iframe上使用滚动条,并且内容的高度取决于宽度(在表单上使用引导程序)。

总之,我需要了解iframe内容的高度。 iframe确实被加载,但是起始高度等于0。

对不起,我的英语,我希望你能理解;)

0 个答案:

没有答案