在iframe

时间:2018-01-17 18:02:56

标签: javascript jquery html iframe

我使用以下代码根据内容调整iframe的大小:

iframe内部

function resizeiframe() {
  window.parent.postMessage(
    document.getElementById("widget-container").offsetHeight
    ,"*"
  );
};


window.onload = function() {
  resizeiframe();
};

在父级

<iframe src="https://myurl.com"
        frameborder="0"
        scrolling="no"
        width="100%"
        id="my-iframe"
        name="my-iframe"
        allowtransparency="true"
        target="_blank">
  Your browser is not supported.
</iframe>

<script type="text/javascript">
    var myEventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
    var myEventListener = window[myEventMethod];
    var myEventMessage = myEventMethod == "attachEvent" ? "onmessage" : "message";
    myEventListener(myEventMessage, function (e) {
        if (e.data === parseInt(e.data))
            document.getElementById('my-iframe').height = e.data + "px";
            alert(e.data);
    }, false);
</script>

它工作得很好(用于测试我警告父母的e.data)。但是,如果我希望iframe在点击时调整大小则不起作用。

iframe内的按钮

$(document).on("click", ".show-recipe-btn", function(){
  window.parent.postMessage(
    2000
    ,"*"
  );
});

当我点击示例代码中的按钮时,父警告2000,这是正确的,但iframe高度不会改变。

我需要更改哪些内容才能在按钮点击时调整iframe大小?

  

更新我刚刚意识到,一旦点击该按钮,它就会触发2000,但就在该窗口之后。再次激活。

     

新问题:我需要window.onload函数来发送   小部件容器高度,并在按钮单击我需要发送另一个ID的高度。如何重写我的代码才能使其工作?

0 个答案:

没有答案