Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 控制iframe的大小单击调整大小_Javascript_Iframe - Fatal编程技术网

Javascript 控制iframe的大小单击调整大小

Javascript 控制iframe的大小单击调整大小,javascript,iframe,Javascript,Iframe,此代码由第三方网站生成,用于嵌入地图。单击地图时,iframe将调整大小以填充整个浏览器视口,并且“我的网站”上的标题菜单将消失。一旦发生这种情况,就无法再次查看我的站点上的标题菜单 是否仍有方法阻止地图使用整个查看端口?我希望我的网站的标题菜单保持可见 我一直在使用这行代码 oMap.style.height=h+“px” …但不知道如何取得进展 <p>My Header Menu</p> <script type="text/javascript"&g

此代码由第三方网站生成,用于嵌入地图。单击地图时,iframe将调整大小以填充整个浏览器视口,并且“我的网站”上的标题菜单将消失。一旦发生这种情况,就无法再次查看我的站点上的标题菜单

是否仍有方法阻止地图使用整个查看端口?我希望我的网站的标题菜单保持可见

我一直在使用这行代码

oMap.style.height=h+“px”

…但不知道如何取得进展

<p>My Header Menu</p>

    <script type="text/javascript">
        var vURL      = "http://maps.gsi.go.jp";
        var vURL_Site = "/?postmessage=1#5/35.362222/138.731389/&base=std&ls=std&disp=1&vs=c1j0l0u0f0";
        var oMap      = null;        
        function Init(){
            oMap = document.createElement("iframe");
            oMap.style.display = "none";
            oMap.src = vURL + vURL_Site;
            oMap.onload = function(){
                var oContent   = oMap.contentWindow;
                var ClientMode = {
                  baseUrl     : null
                , location    : null
                , LayerJS     : null
                , sakuzuList  : null
                , queryString : null
                };

                ClientMode.sakuzuList = [{"fileName":"","visible":true,"features":[{"type":"Feature","properties":{"_markerType":"DivIcon","_html":"JAPAN"},"geometry":{"type":"Point","coordinates":[141.8115234375,37.47485808497102]}}]}];


                oContent.postMessage(ClientMode, vURL);

                EvtResize();
            };

            document.body.appendChild(oMap);
        };

        function EvtResize(){
            var w = window.innerWidth;
            var h = window.innerHeight;
            if(oMap != null){
                oMap.style.width   = w + "px";
                oMap.style.height  = h + "px";
                if(oMap.style.display == "none"){
                    oMap.style.display = "block";
                }
            }
        };

        window.onload   = function(){
            document.body.style.margin   = "0px";
            document.body.style.padding  = "0px";
            document.body.style.overflow = "hidden";

            Init();
        }
        window.onresize = EvtResize;
    </script>
我的标题菜单

var vURL=”http://maps.gsi.go.jp"; var vURL_Site=“/?postmessage=1#5/35.362222/138.731389/&base=std&ls=std&disp=1&vs=c1j0l0u0f0”; var-oMap=null; 函数Init(){ oMap=document.createElement(“iframe”); oMap.style.display=“无”; oMap.src=vURL+vURL_站点; oMap.onload=函数(){ var oContent=oMap.contentWindow; var ClientMode={ baseUrl:null ,位置:空 ,LayerJS:null ,sakuzuList:null ,queryString:null }; ClientMode.sakuzuList=[{“文件名”:“,”可见“:true,“特征”:[{“类型”:“特征”,“属性”:{“_-markerType”:“DivIcon”,“_-html”:“JAPAN”},“几何体”:{“类型”:“点”,“坐标”:[141.8115234375,37.47485808497102]}]; oContent.postMessage(ClientMode,vURL); EvtResize(); }; 文件.正文.附件(oMap); }; 函数EvtResize(){ var w=窗内宽度; var h=窗内高度; 如果(oMap!=null){ oMap.style.width=w+“px”; oMap.style.height=h+“px”; 如果(oMap.style.display==“无”){ oMap.style.display=“块”; } } }; window.onload=函数(){ document.body.style.margin=“0px”; document.body.style.padding=“0px”; document.body.style.overflow=“隐藏”; Init(); } window.onresize=EvtResize;
var h=window.innerHeight
h
设置为的高度(以像素为单位)。然后
oMap.style.height=h+“px”将iframe设置为该高度

从提供的代码来看,不清楚为什么它会导致头消失。相反,我希望iframe被切掉,因为它被附加在标题下
document.body.appendChild(oMap)

如果希望所有内容都适合屏幕,请在设置
oMap
的高度时尝试减去收割台的高度。例如,如果标题高度为200px,请使用
var h=window.innerHeight-200


另外,尝试删除行
document.body.style.overflow=“hidden”。这可以防止
主体
元素在元素太大而无法容纳时创建滚动条,并且可能是隐藏标题的原因。

我可以证明问题的最简单方法是使用

粘贴上面的代码,点击地图,标题消失

然后进行编辑,以便:oMap.style.height=h-40

标题不再消失


然而,在我的现场网站上,这又引起了另一个严重的地图显示问题。在继续之前,我需要解决一个潜在的相关问题。因此,这个问题暂时搁置。

我试图在JSFIDLE中模拟您的问题,但是没有取消标题,而是截断了iframe。这是由于
document.body.style.overflow=“hidden”
,这会阻止在body元素上滚动。您可以使用JSFIDLE来模拟您的问题。如果您能提供演示该bug的工作代码,这将对我们有所帮助。谢谢。我不知道如何格式化px的数量,您帮助了这个var h=window.innerHeight-200;