验证iFrame内容并更新包含DIV高度

时间:2016-06-17 18:40:58

标签: javascript jquery html css iframe

我有一块JQuery已经由之前的开发人员提供,但我并不是100%确定我理解它在做什么。我认为这与根据其内容设置iFrame的高度有关。

            var iframeId = "iframeFinancial"; 
            var origin = "http://content.net";

//I am not 100% sure what is going on over the next 3 lines    


                var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
                var eventListener = window[eventMethod];
                var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

            eventListener(messageEvent,function(e) {
                var message = e.data;
                if(e.origin !== origin) return;  // change to vanity url if applicable
                updateIFrame(message);
            },false);

            function updateIFrame(msg) {
                console.log('In Update Iframe Function');
                if(typeof msg != 'object') {
                    var iframe = document.getElementById(iframeId); // iframe id
                    iframe.setAttribute('height',msg);

                } else { // for multiple iframe support
                    var id = msg.id;
                    var height = msg.height;
                    var object = document.getElementById(id);
                    object.setAttribute('height',height);
                }
            }

但是当iFrame加载时,我从未根据我在控制台中看到的内容进入updateIFrame函数。

我自己也尝试了以下操作,但遇到了这个错误:Error: Permission denied to access property "document"

document.getElementById("iframeFinancial").onload = function()
        {

      var iFrameID = document.getElementById('iframeFinancial');
      iFrameID.height = ""; 
      iFrameID.height = iFrameID.contentWindow.document.body.scrollHeight + "px"; 

      console.log('In new function');
        }

我检查了加载到iFrame中的页面,并在页面底部找到了以下JS片段:

  (function ($) {
        var wrapper = document.getElementById('wrapper'); // the container element of the phx content.
        var height = Math.max( wrapper.offsetHeight, wrapper.scrollHeight );
        parent.postMessage(height,"*");
    }(Phx.$));

根据此处显示的内容,我需要更新问题顶部提到的JQUERY。

0 个答案:

没有答案