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